很抱歉问这样一个菜鸟问题,但是 NDK 文档是错误的(r7b):
如果您使用 ADT 在 Eclipse 中进行开发,请使用新建项目向导
使用“导入”为每个示例创建一个新的 Android 项目
从现有源”选项并从以下位置导入源<ndk>/apps/<app_name>/project/
。然后,如有必要,设置 AVD,并且
在模拟器中构建/运行应用程序。
没有“apps”文件夹,并且示例不包含“project”文件夹。那么...运行样品的正确方法是什么?
另外,我可以配置 Eclipse 自动构建代码的 C++ 部分吗?
- 单击文件 |新 |项目...
- 选择Android项目,下一步
- 项目名称:这是 Package Explorer 中显示的项目名称。它只是一个存储在
.project
Eclipse 创建的文件。没有使用此名称创建文件或文件夹,并且输出二进制文件似乎不包含此名称。
- 单击“从现有源创建项目”
- 位置:选择项目的根文件夹,例如.../android-ndk-r7b/samples/位图等离子
- 单击“下一步”并选择您的目标 API。 Eclipse 似乎不允许稍后更改,至少不能从 GUI 更改。我不知道为什么 Eclipse 不简单地从
<uses-sdk>
在 AndroidManifest.xml 中或从 default.properties 中的“目标”行。我也不知道为什么两者可能不同(例如在位图等离子样本中,target=android-9
but <uses-sdk android:minSdkVersion="8"/>
.)
- 单击下一步并考虑更改默认为“your.package.namespace”的“包名称”字段。但是,如果您不更改此字段,该项目将正常运行。不选中“创建活动”和“创建测试项目”。
- 单击“完成”。 Eclipse 将在现有代码旁边创建大量额外文件(例如 .classpath、.project、project.properties)和文件夹(bin、gen、assets)。这是除了 ndk-build 创建的输出文件夹(obj 和 libs)之外的内容。
Eclipse 不会自行构建本机代码,但它会自动部署本机代码(例如 libplasma.so)if它知道这一点。在命令行上构建本机代码后,例如:
C:\...\android-ndk-r7b\samples\bitmap-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 在启动模拟器时可能无法上传本机代码。
最后,要运行该示例,请右键单击该项目并选择“运行方式”|“安卓应用程序。See here https://stackoverflow.com/questions/1536384/android-emulator-select-avd-android-virtual-device-to-run-by-default关于选择使用哪个模拟器。
See here http://mobilepearls.com/labs/ndk-builder-in-eclipse/关于配置 Eclipse 自动构建本机代码。
我很好奇为什么 NDK 为每个 ABI 生成两个大小截然不同的 *.so 文件,例如它创建libs/armeabi-v7a/libplasma.so
(15 KB) 而且obj/local/armeabi-v7a/libplasma.so
(63 KB)。有人知道其中的区别吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)