手动(aapt)将本机库.so添加到apk

2024-01-09

由于多种原因,我正在手动构建我的项目(或多或少遵循以下步骤http://geosoft.no/development/android.html http://geosoft.no/development/android.html),不使用 ant。

我的项目使用 NDK 并构建.so图书馆。

  • 使用 Eclipse:

当我使用 Eclipse 构建项目时,一切正常:我拖放libMyNativeLib.so in the libs/armeabi目录以及当我打电话时loadLibrary(MyNativeLib)它工作正常:我可以从我的 Java 代码调用本机方法。

  • 手动:

现在我想手动构建我的.apk。除了本机库加载之外,一切正常。 使用aapt add,我在我的apk中添加了:lib/armeabi/libMyNativeLib.so(我看到Eclipse生成的apk中包含这个.solib/armeabi所以我在apk中使用了相同的路径)。 打电话时loadLibrary(MyNativeLib),我得到以下异常

java.lang.UnsatisfiedLinkError: Couldn't load MyNativeLib from loader dalvik.system.PathClassLoader[DexPathList...

这是为什么 ?

我应该在dx --dex关于本机代码的步骤(.so库)?我不这么认为,但我可能错了? (我只使用dx --dex和我的.jar我猜这是逻辑库)。

你有什么主意吗 ?

Thanks


感谢 apktool (http://ibotpeaches.github.io/Apktool/ http://ibotpeaches.github.io/Apktool/)我发现出了什么问题。

生成最终的makefile.apk捆绑包有错误。确实是aapt add命令包含\在路径中而不是/。当我在 Windows 上生成时,我的所有路径都使用\作为分隔符。这就是我使用的原因\ for aapt add。但是,由于在安装过程中使用了此路径.apk在 Android (Unix) 上,那么我应该使用/分隔器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手动(aapt)将本机库.so添加到apk 的相关文章

随机推荐