system.loadlibrary android5.0以下,android – System.loadLibrary(…)在我的情况下找不到本机库...

根本原因(也许在同一时间解决你的问题),这里是你可以做:

>删除jni文件夹和所有.mk文件。如果你不编译任何东西,你不需要这些也不需要NDK。

>将您的libcalculate.so文件复制到< project> / libs /(armeabi | armeabi-v7a | x86 | …)。当使用Android Studio时,它是jniLibs而不是libs,但我看到你使用eclipse。

>构建您的APK并将其打开为zip文件,以检查您的libcalculate.so文件是否在lib /(armeabi | armeabi-v7a | x86 | …)。

>删除并安装您的应用程序

>运行dumpsys软件包| grep yourpackagename获取应用程序的nativeLibraryPath或legacyNativeLibraryDir。

>在nativeLibraryPath上运行ls,或者在legacyNativeLibraryDir / armeabi上,检查libcalculate.so是否确实存在。

>如果它在那里,检查它是否没有从原来的libcalculate.so文件更改:它是根据正确的架构编译,是否包含预期的符号,是否有任何丢失的依赖。你可以使用readelf分析libcalculate.so。

为了检查步骤5-7,您可以使用我的应用程序而不是命令行和readelf:Native Libs Monitor

PS:很容易混淆.so文件应该放在或生成默认情况下,这里是一个总结:

> libs / CPU_ABI在eclipse项目中

> jniLibs / CPU_ABI在Android Studio项目中

> jni / CPU_ABI在AAR内

> lib / CPU_ABI里面的最终APK

>在< 5.0设备上的应用程序的nativeLibraryPath内部,以及在> = 5.0设备上的应用程序的legacyNativeLibraryDir / CPU_ARCH内部。

其中CPU_ABI是以下任一项:armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,mips,mips64。根据您定位的架构和您的库已编译。

还要注意,libs不会混合在CPU_ABI目录之间:你需要你使用的完整集,armeabi文件夹内的lib不会安装在armeabi-v7a设备上,如果armeabi里面有任何库-v7a文件夹从APK。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值