看来真不能直接将.so文件直接添加到Android的JAR包了
2016-03-28 15:36
274 查看
(转载)/article/4761205.html
如果直接在一个JAR中的/libs/armeabi下放个XXX.SO文件,然后导出成JAR包的后,如A.JAR,
在一个Android的程序中引用这个A.JAR,那么编译的时候就会出现一下的错误:
网上搜素索了下,还是没有找到解决方法。
只能采用如下的方式:
1.像科大讯飞那样(/Msc/assets/lib/msc.jet:文件前4个字节为:.ELF,而且文件末尾可以看到类是JNI的函数
直接将.SO文件改个扩展名,然后放到assert中,导出到JAR中,然后在启动的时候/或者首次被调用的时候将其拷贝到
调用程序的目录下,手动加载SO库文件
2.就是直接将JAR中的.SO文件放到目标程序的/libs/armeabi下,即可。
(以上提到的.SO文件都是针对ARM架构的,如果是x86的,注意将上文中的相应目录修改成/libs/x86/目录即可)
总之:Android将某个工程打成JAR包的时候,最好只包括源代码,另外就是可以包含一些文件,如assert或者自己定义的一些文件个数,
但不要保护资源文件(/res下所有文件内容都不要放在JAR包中)。
分类: Android
//------------------------------------------------------------------------------------------------------
http://www.apkbus.com/blog-112160-47893.html
如果直接在一个JAR中的/libs/armeabi下放个XXX.SO文件,然后导出成JAR包的后,如A.JAR,
在一个Android的程序中引用这个A.JAR,那么编译的时候就会出现一下的错误:
只能采用如下的方式:
1.像科大讯飞那样(/Msc/assets/lib/msc.jet:文件前4个字节为:.ELF,而且文件末尾可以看到类是JNI的函数
直接将.SO文件改个扩展名,然后放到assert中,导出到JAR中,然后在启动的时候/或者首次被调用的时候将其拷贝到
调用程序的目录下,手动加载SO库文件
2.就是直接将JAR中的.SO文件放到目标程序的/libs/armeabi下,即可。
(以上提到的.SO文件都是针对ARM架构的,如果是x86的,注意将上文中的相应目录修改成/libs/x86/目录即可)
总之:Android将某个工程打成JAR包的时候,最好只包括源代码,另外就是可以包含一些文件,如assert或者自己定义的一些文件个数,
但不要保护资源文件(/res下所有文件内容都不要放在JAR包中)。
分类: Android
//------------------------------------------------------------------------------------------------------
http://www.apkbus.com/blog-112160-47893.html
java 读取JAR文件中的内容:
相关文章推荐
- Android中scrollview在Activity初始化过程中, 要指定滚动条位置
- android中URI简介
- android基础课之Progress
- 如何实现下拉刷新View处在顶端时,才能拉出下拉刷新View,而不是仅仅处于第一个可见View时就可拉出
- Android 配置文件<activity>元素
- Android动作广播类别消息类型
- 【android笔记】移除activity切换效果,取消闪烁
- android:screenOrientation
- android:windowSoftInputMode属性详解
- 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析
- android:stateNotNeeded
- Android相关属性的介绍:android:exported
- android开发——天气预报
- gradle编译错误:Conflict with dependency com.android.support:support-annotations
- R文件无法自动生成
- android studio 获取SHA1
- android 编程小技巧(持续中)
- Android 第八天_重置版_服务_注意事项
- 初学Android之AndroidStudio下载与安装
- Android 不规则图形点击区域判断