【发布时间】:2011-02-25 07:10:00
【问题描述】:
我正在使用 Eclipse 3.6 开发一个相对简单的 Android NDK 项目。我毫无问题地构建了我的共享库,并且 ndk-build 将它放在 libs/armaebi 中(注意:我没有在我的 Android.mk 或 Application.mk 文件中指定该目录)。当我尝试在模拟器上运行项目时,我得到了 UnsatisfiedLinkError。
然后,我检查了所有内容,确保调用了 System.loadlibrary、验证了我的标头等,一切看起来都正常。最后,我注意到 logcat 说它正在寻找 ../lib not ../libs/armeabi 中的文件。然后我手动创建了一个 lib 目录并将我的 .so 放在那里,但仍然遇到同样的错误。当我解压 APK 时,我可以看到 Eclipse 仍然将它放在 ../lib/armaebi 目录中。我尝试删除/添加项目、寻找设置等,但没有成功。
我的问题是:到底发生了什么?这真的很愚蠢吗?一个我似乎找不到的地方?还是它以某种方式依赖于 API 版本? Eclipse 如何决定将 .so 放在哪个目录,因为它显然忽略了我在项目中的结构!
在此先感谢大家。
-帕维尔
【问题讨论】:
标签: android eclipse shared-libraries android-ndk