很抱歉问这样一个noob问题,但NDK文档是错误的(r7b):
如果您使用ADT在Eclipse中进行开发,请使用"新建项目向导"要为每个示例创建一个新的Android项目,请使用"导入from Existing Source"选项,并从中导入源CCD_ 1。然后,如有必要,设置AVD,以及在模拟器中构建/运行应用程序。
没有"应用程序"文件夹,示例中也不包含"项目"文件夹。所以运行样本的正确方法是什么?
此外,我可以配置Eclipse来自动构建代码的C++部分吗?
- 单击"文件"|"新建"|"项目…"
- 选择Android项目,下一步
- 项目名称:这是包资源管理器中显示的项目名称。它只是存储在Eclipse创建的
.project
文件中的一个字符串。没有使用此名称创建任何文件或文件夹,并且输出二进制文件似乎不包含此名称 - 单击";从现有源创建项目"
- 位置:选择项目的根文件夹,例如…/android-ndk-r7b/samples/bitmap plasmal
- 单击下一步并选择您的目标API。Eclipse似乎不允许以后对此进行更改,至少不允许从GUI进行更改。我不知道为什么Eclipse不简单地从AndroidManifest.xml中的CCD_;目标";行。我也不知道为什么两者可能不同(例如,在位图等离子体样本中,
target=android-9
但<uses-sdk android:minSdkVersion="8"/>
。) - 单击"下一步"并考虑将";包装名称";默认为"0"的字段;您的.package.namespace";。但是,如果不更改此字段,项目将正常运行。离开"创建活动";以及";创建测试项目";未选中
- 单击"完成"。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,您现在可以进行
- 单击"文件"|"新建"|"项目…"
- 在Android类别下,从现有代码中选择Android项目,然后单击下一步
- 在根目录中,您可以浏览并确认您的示例项目位置
从这里,Eclipse可以自动检测jni并查找项目。
如果这不起作用,请转到终端或命令提示符,并导航到您的项目根目录(在那里您可以看到jni文件夹)。然后输入
android update project -p . -t <your target level>
这里应该是,例如,android-9
在此之后,请重试最初的步骤。