我是靠谱客的博主 冷酷眼神,这篇文章主要介绍The library 'xxx.jar' contains native libraries that will not run on the device. 解决方法(Eclipse)I、 遭遇II、总结,现在分享给大家,希望可以做个参考。

I、 遭遇

由于项目后续开发需要,不能直接连子库,需要将子库编译成jar或其他方式添加到主工程中。我想到的最简单的方法就是把子工程export成jar,然后将此jar添加到主工程。

跟想象的一样,很顺利,编译也通过了,但在运行的时候突然提示出错:

[2018-05-04 10:54:28 - Test4Unity13] The library 'libcv.jar' contains native libraries that will not run on the device.
[2018-05-04 10:54:28 - Test4Unity13] The following libraries were found:
[2018-05-04 10:54:28 - Test4Unity13]  - libs/armeabi-v7a/libnative_camera_r2.2.0.so
[2018-05-04 10:54:28 - Test4Unity13]  - libs/armeabi-v7a/libnative_camera_r2.3.3.so
[2018-05-04 10:54:28 - Test4Unity13]  - libs/armeabi-v7a/libnative_camera_r3.0.1.so
[2018-05-04 10:54:28 - Test4Unity13]  - libs/armeabi-v7a/libnative_camera_r4.0.0.so
[2018-05-04 10:54:28 - Test4Unity13]  - libs/armeabi-v7a/libopencv_java.so

[2018-05-04 10:54:28 - Test4Unity13]  - libs/armeabi-v7a/libopencv_java3.so

……


然后就去请教度娘,n多同道中人指点如下方法:

在Perferences页面中,将Force error when extenal jars cpmtain native libraries中的选项勾去掉,然后Clean即可。

该配置项的位置:Eclipse->windows->Perferences->Android->Build

于是我也尝试了一下,编译通过,但运行的时候结果还是如此。


然后,我想既然上面的so文件系统不知道,那不如直接将库工程中的所有so,jar都copy到主工程中,然后再export 库工程的jar,这是很朴素的想法,相信很多xdjm也想到了:)

接着我按照上述思路,进行了如下尝试:

1)将缺失的so文件都copy到主工程lib下(我这里没有jar)

2)重新导出库工程的jar,注意这个时候就不要包括已经copy出来的这些so了

3)将新导出的jar copy到主工程的lib下

然后Clean,编译通过,跟预期的一样。

最关键的时刻来了,运行,成功!说明上述工作让编译系统找到了so了,接下来就要看看牵扯到的子库工程是不是好使了。

猜对了!

一切正常,问题解决。


II、总结

遇到此类文件,解决方法有:

方案一:

在Perferences页面中,将Force error when extenal jars cpmtain native libraries中的选项勾去掉,然后Clean重新编译。

该配置项的位置:Eclipse->windows->Perferences->Android->Build


方案二:

按照如下操作,然后编译运行:

1)将缺失的so文件都copy到主工程lib下(我这里没有jar)

2)重新导出库工程的jar,注意这个时候就不要包括已经copy出来的这些so了

3)将新导出的jar copy到主工程的lib下


总结一下:

如果导入库工程直接编译不通过(前提是文件不少哈),考虑用方案一,如果好使了就没问题了。不行再用方案二。

如果方案二还是解决不了,又没有好的思路,时间又紧急,那只能用最后的杀手锏——

把库工程整个挪过去(有点low哈,慎用-_-)


PS:再提醒xdjm,导入库工程时,一定要注意库工程是否有服务,广播之类(在manifest里面),一定要挪到主工程中去。

最后

以上就是冷酷眼神最近收集整理的关于The library 'xxx.jar' contains native libraries that will not run on the device. 解决方法(Eclipse)I、 遭遇II、总结的全部内容,更多相关The内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部