android加载so文件失败,Android无法加载'.so.1'文件

我想你还没有通过JNI加载原生库到Java的概念。

首先在java中定义本地方法并在本机中执行相应的实现并编译它(您必须按照命名约定注册本地方法1)2)在jni_onload中注册本地方法...我认为你一定已经这样做了,如果没有检查http://www.ntu.edu.sg/home/ehchua/programming/android/android_ndk.html)

接下来,你必须在任何调用之前加载本地库。这必须做一次。您可以通过定义做一个活动:

静态{

的System.loadLibrary( “mylib.so”);

}

注意在编译库,你会已经得到了库名libXYZ.so,但加载在Java库时的“LIB”应该被忽略,仅仅的System.loadLibrary(XYZ.so) 如果您使用的是NDK,则该库已经被复制到Java项目> libs> armeabi文件夹中,如果没有,则必须将您的lib.so复制到那里

现在,如果您有多个共享库,依赖于lib.so,然后是第二等,即

静态{

System.loadLibrary(independent_lib.so); //应该仅依赖于android库文件 System.loadLibrary(next_dependent_lib1.so); //可以依靠android库和independent_lib.so System.loadLibrary(next_dependent_lib2.so); //可以依靠的Android库,independent_lib.so,next_dependent_lib1.so ..... .... ..

}

如果混杂起来,VM将不能够链接库并抛出一个不满意的链接错误。

最后,所有这些.so都将成为你的apk文件的一部分,并且它只会被运行到系统库。除非它的电话根本不能提取.so。如果您按照上述方法,则不需要将任何.so添加到系统中。只有建立在日食/ Cygwin和运行

希望这有助于

问候, Shrish

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值