Android 调用.so包时报错:No implementation found for native Lxxx, java.lang.UnsatisfiedLinkError: XXX时的解决办法(转)
2017-04-11 17:11
961 查看
问题就是在调用自己同事写的.so包时,怎么也掉不通,程序一直报错退出,错误内容就是:
1 No implementation found for native Lxxx,
2 Java.lang.UnsatisfiedLinkError: XXX时的解决办法
因为我俩都没接触过ndk,所以我找了上午原因也一直没通,各种无力感涌来,
其中包括以下几个很强力的办法,都没能解决我的问题:
1 在.cpp文件里,增加extern C{}结构,
2 在libs下,创建armeabi和armeabi_v7a这两个目录,分别将.so文件放进去。
3 检查
[java] view plain copy
static{
<span style="white-space:pre"> </span>System.LoadLibrary("so name");//不能带lib
}
经过无数次失败后,想起平时调用百度地图,个推等等第三方包的时候,都有会一个或者多个.so文件,同时会有一个对应的命名类似.jar文件,想到也许是我创建的项目的目录名和.so本身的方法名不匹配造成的,于是:
经过不断尝试,发现:
在创建项目时,该项目的包名必须和这个.so文件的方法里的目录一致才可以保证调通,
即:
JNICALL Java_com_ndk_demo_jni_compute();
那我们的项目包名就应该是:com.ndk.demo,而生命native方法的类名是:jni
这样才能保证调用。
其他的命名方式没有进行过多尝试,有其他匹配方式的同学,留言给我,多谢。
这个方法解决了我的问题。
1 No implementation found for native Lxxx,
2 Java.lang.UnsatisfiedLinkError: XXX时的解决办法
因为我俩都没接触过ndk,所以我找了上午原因也一直没通,各种无力感涌来,
其中包括以下几个很强力的办法,都没能解决我的问题:
1 在.cpp文件里,增加extern C{}结构,
2 在libs下,创建armeabi和armeabi_v7a这两个目录,分别将.so文件放进去。
3 检查
[java] view plain copy
static{
<span style="white-space:pre"> </span>System.LoadLibrary("so name");//不能带lib
}
经过无数次失败后,想起平时调用百度地图,个推等等第三方包的时候,都有会一个或者多个.so文件,同时会有一个对应的命名类似.jar文件,想到也许是我创建的项目的目录名和.so本身的方法名不匹配造成的,于是:
经过不断尝试,发现:
在创建项目时,该项目的包名必须和这个.so文件的方法里的目录一致才可以保证调通,
即:
JNICALL Java_com_ndk_demo_jni_compute();
那我们的项目包名就应该是:com.ndk.demo,而生命native方法的类名是:jni
这样才能保证调用。
其他的命名方式没有进行过多尝试,有其他匹配方式的同学,留言给我,多谢。
这个方法解决了我的问题。
相关文章推荐
- Android 调用.so包时报错:No implementation found for native Lxxx, java.lang.UnsatisfiedLinkError: XXX时的解决办法
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- 【我的Android进阶之旅】Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- NDK .so Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方案
- 调用地图提示错误:java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.t
- Android之JNI错误:no implementation found in native -java.lang.UnsatisfiedLinkError: Native method not
- 关于android某些手机java.lang.UnsatisfiedLinkError: No implementation found for ......的问题
- [JNI] java.lang.UnsatisfiedLinkError:Native method not found && no implementation found for native ~
- Mybatis-There is no getter for property named 'XXX' in 'class java.lang.String'解决办法
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
- Android JNI报错:java.lang.UnsatisfiedLinkError: Native method not found ..........解决办法
- 解决百度地图开发问题:java.lang.UnsatisfiedLinkError:No implementation found for
- 解决:预制apk到镜像出现 java.lang.UnsatisfiedLinkError: No implementation found for*****
- java.lang.UnsatisfiedLinkError: No implementation found for int com.xxx.xx中的couldn’t find “XX.so”或loadLibrary("xxx")失败
- 调用百度地图5.0出现java.lang.UnsatisfiedLinkError: No implementation found for int