如何运行NDK示例



很抱歉问这样一个noob问题,但NDK文档是错误的(r7b):

如果您使用ADT在Eclipse中进行开发,请使用"新建项目向导"要为每个示例创建一个新的Android项目,请使用"导入from Existing Source"选项,并从中导入源CCD_ 1。然后,如有必要,设置AVD,以及在模拟器中构建/运行应用程序。

没有"应用程序"文件夹,示例中也不包含"项目"文件夹。所以运行样本的正确方法是什么?

此外,我可以配置Eclipse来自动构建代码的C++部分吗?

  1. 单击"文件"|"新建"|"项目…"
  2. 选择Android项目,下一步
  3. 项目名称:这是包资源管理器中显示的项目名称。它只是存储在Eclipse创建的.project文件中的一个字符串。没有使用此名称创建任何文件或文件夹,并且输出二进制文件似乎不包含此名称
  4. 单击";从现有源创建项目"
  5. 位置:选择项目的根文件夹,例如…/android-ndk-r7b/samples/bitmap plasmal
  6. 单击下一步并选择您的目标API。Eclipse似乎不允许以后对此进行更改,至少不允许从GUI进行更改。我不知道为什么Eclipse不简单地从AndroidManifest.xml中的CCD_;目标";行。我也不知道为什么两者可能不同(例如,在位图等离子体样本中,target=android-9<uses-sdk android:minSdkVersion="8"/>。)
  7. 单击"下一步"并考虑将";包装名称";默认为"0"的字段;您的.package.namespace";。但是,如果不更改此字段,项目将正常运行。离开"创建活动";以及";创建测试项目";未选中
  8. 单击"完成"。Eclipse将在现有代码的旁边创建大量额外的文件(例如.classpath、.project、project.properties)和文件夹(bin、gen、assets)。这是ndk-build创建的输出文件夹(obj和libs)之外的内容

Eclipse不会自己构建本机代码,但它会自动部署本机代码(例如libplasmas.so),如果它知道的话

C:...android-ndk-r7bsamplesbitmap-plasma>....ndk-build
Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup       : libs/armeabi/gdb.setup
Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi-v7a/gdbserver
Gdbsetup       : libs/armeabi-v7a/gdb.setup
"Compile thumb : plasma <= plasma.c
SharedLibrary  : libplasma.so
Install        : libplasma.so => libs/armeabi/libplasma.so
"Compile thumb : plasma <= plasma.c
SharedLibrary  : libplasma.so
Install        : libplasma.so => libs/armeabi-v7a/libplasma.so

右键单击您的项目并选择";刷新";,否则,Eclipse在启动模拟器时可能无法上传本机代码。

最后,要运行示例,右键单击项目并选择run As | Android application。请参阅此处,了解如何选择要使用的模拟器。

请参阅此处,了解如何配置Eclipse以自动构建本机代码。

我很好奇为什么NDK为每个ABI生成两个大小非常不同的*.so文件,例如,它创建libs/armeabi-v7a/libplasma.so(15 KB),但也创建obj/local/armeabi-v7a/libplasma.so(63 KB)。有人知道区别吗?

不要走冗长的路(经验丰富的程序员喜欢它,但适合初学者)。有一种方法可以在Eclipse和NDK中构建本机库。

1> 首先,你需要确保NDK路径在Windows->首选项->(选项卡)Android->NDK中是正确的-如果没有设置-将其指向NDK目录。

2> 假设你已经导入了如上所述的项目(新建|项目|从现有代码创建)-右键单击项目并转到"Android工具->添加本地支持.."。如果设置了路径,它将构建示例。然后,您可以通过按下播放按钮将其部署到设备或AVM。

来源

我正在使用Eclipse ADT和Android ndk 5b。我的项目正确路径是android-ndk-5b/samples/project

当你从现有的源导入时,你必须选择一个正确的目标,我使用Android 2.3.3。

之后,我从命令行更新了我的项目,看看这个链接,http://developer.android.com/sdk/ndk/overview.html从示例路径写:android更新项目-p-s和$Your_Path_Android_ndk/ndk构建

最后,只在Eclipse中作为android应用程序运行,并且完成了

似乎有了Eclipse Juno,您现在可以进行

  1. 单击"文件"|"新建"|"项目…"
  2. 在Android类别下,从现有代码中选择Android项目,然后单击下一步
  3. 在根目录中,您可以浏览并确认您的示例项目位置

从这里,Eclipse可以自动检测jni并查找项目。

如果这不起作用,请转到终端或命令提示符,并导航到您的项目根目录(在那里您可以看到jni文件夹)。然后输入

android update project -p . -t <your target level>

这里应该是,例如,android-9

在此之后,请重试最初的步骤。

最新更新