Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.geoway.mobile.utils
来源:互联网 发布:tpp ttip 知乎 编辑:程序博客网 时间:2024/05/17 10:39
最近一个项目中依赖: compile 'com.github.barteksc:android-pdf-viewer:2.7.0-beta.1',但是由于还使用了其他的SDK,当运行的时候就出现了这个问题:
Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.geoway.mobile.utils.AndroidUtilsModuleJNI.AndroidUtils_setContext(android.content.Context) (tried Java_com_geoway_mobile_utils_AndroidUtilsModuleJNI_AndroidUtils_1setContext and Java_com_geoway_mobile_utils_AndroidUtilsModuleJNI_AndroidUtils_1setContext__Landroid_content_Context_2)
at com.geoway.mobile.utils.AndroidUtilsModuleJNI.AndroidUtils_setContext(Native Method)
简而言之,就是出现了c++层给我们编译的so文件出现了问题;通过参考这个http://blog.csdn.net/xulike1990/article/details/54848323;知道了问题出现在我们的这些都是android设备的cup类型:
armeabiv-v7a: 第7代及以上的ARM处理器;
arm64-v8a: 第8代、64位ARM处理器;
armeabi: 第5代、第6代的ARM处理器;
mips:一种RISC处理器。
mips64:64位的。
x86: 平板;
x86_64:64位的平板。根据这些cup生成的so文件的问题;这些问题的根本就是:比如说你的设备是适配arm-64的,其中pdf-viewer中生成了这个arm-64的so文件,而在其他的SDK中又没有生成改SDK对应的arm-64的so文件;因此出现了上述找不到JNI方法的问题;
当然有人可能疑惑,我们单独使用任何一个的时候,自己的设备都没有问题,在一起使用时就出现了问题,这个就是我们的设备,最先适配自己cup对应的so文件,当找不到的时候,会向下适配。当两个都添加时,就会出现上述问题。
重点来了,解决办法:
方法1:如果你可以自己编译so文件,那么你就编译出相同的两套文件夹对应的so文件,就可以了,当然这个跟自己底层SDK开发有关,这个比较高大上
方法2: 屌丝也有屌丝的方法:
相信还记得abiFilters这个东西吧,没错就是ndk{
abiFilters:" "," "};
这个,刚开始我也想这个对我们依赖上来的东西,会不会生效,实验结果表明是生效的;
所以:
ndk { abiFilters "armeabi-v7a" ,"armeabi" // 指定要ndk需要兼容的架构(这样其他依赖包里mips,x86,armeabi,arm-v8之类的so会被过滤掉)}解决了我的问题;
希望对大家有帮助!!
另外:你会问你怎么知道你的都生成了哪些cup的包?
这个你讲你的apk改名,改成rar,用压缩文件打开,就可以知道了!
- Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.geoway.mobile.utils
- java.lang.UnsatisfiedLinkError No implementation found for void com.baidu.speech.core.BDSSDKLoader.S
- 更新展示互动sdk后,报java.lang.UnsatisfiedLinkError: No implementation found for void错误
- java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String.....
- java.lang.UnsatisfiedLinkError: No implementation found for long com.autonavi.amap.mapcore.MapCore.n
- java.lang.UnsatisfiedLinkError: No implementation found for long com.baidu.platform.comjni.map.commo
- java.lang.UnsatisfiedLinkError: No implementation found for long com.autonavi.amap.mapcore.MapCore.n
- java.lang.UnsatisfiedLinkError: No implementation found for int com.hik.stunclient.StunClient.stunGe
- java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.map.common
- 华迈SDK遇坑:java.lang.UnsatisfiedLinkError: No implementation found for int com.huamaitel.api.HMJniInter
- 调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for
- 百度地图java.lang.UnsatisfiedLinkError: No implementation found for int
- java.lang.UnsatisfiedLinkError: No implementation found
- 解决:java.lang.UnsatisfiedLinkError: No implementation found
- 调用地图提示错误:java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.t
- 百度地图 java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String
- [JNI] java.lang.UnsatisfiedLinkError:Native method not found && no implementation found for native ~
- Caused by: java.lang.UnsatisfiedLinkError: Native method not found: com.gao.gni.JNI.hello:()V
- pomelo(六) 中文FAQ
- ubuntu 安装nvidia 驱动后无法进入桌面(循环进入登录界面 )
- Rust: flat_map,filter_map,for_each
- easyui的datagrid的右侧区域空白及列数横向不能填满
- php获取一个目录下的所有文件全路径---包括子目录---并存放到一维数组
- Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.geoway.mobile.utils
- net_func
- 毕业设计想法2017-10-27日
- C语言基础之基本数据类型
- 动手写 framebuffer 画点、划线程序
- cocos creator01编辑js
- jsp页面给value属性赋值时空格问题
- Java将PDF转换成图片
- 简易新闻模板:freemarker+maven