gpt4 book ai didi

Android APK 在正确的目录中没有 .so

转载 作者:行者123 更新时间:2023-11-29 00:48:11 32 4
gpt4 key购买 nike

我正在使用 Eclipse 3.6 开发一个相对简单的 Android NDK 项目。我毫无问题地构建了我的共享库,ndk-build 将它放在 libs/armae​​bi 中(注意:我没有在我的 Android.mk 或 Application.mk 文件中指定该目录)。当我尝试在模拟器上运行该项目时,我收到了 UnsatisfiedLinkError。

然后我检查了所有内容以确保我调用了 System.loadlibrary、验证了我的 header 等,一切看起来都正常。最后,我注意到 logcat 说它正在寻找 ../lib not ../libs/armeabi 中的文件。然后我手动创建了一个 lib 目录并将我的 .so 放在那里,但仍然遇到同样的错误。当我解压缩 APK 时,我可以看到 Eclipse 仍然把它放在 ../lib/armae​​bi 目录中。我尝试删除/添加项目、寻找设置等,但都没有成功。

我的问题是:到底发生了什么?这真的很愚蠢吗?我似乎无法找到某个地方的设置?或者它是否以某种方式依赖于 API 版本? Eclipse 如何决定将 .so 放在哪个目录中,因为它显然忽略了我在项目中的结构!

提前感谢大家。

-帕维尔

最佳答案

Android 包管理器将库安装到 lib/而不是 lib/armeabi,所以那里没有问题。 armeabi 位于 APK 中,因为您可以针对 armeabi 或 armeabi-v7a 进行编译,并且包管理器会为设备安装最合适的库。

UnsatisfiedLinkError 很可能是由于您的 JNI 函数签名中的错误造成的。您可以通过 javah 程序运行已编译的类文件来检查签名应该是什么。任何差异都是错误的原因。

关于Android APK 在正确的目录中没有 .so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5114589/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com