安卓,so库动态载入

作者: scimence | 来源:发表于2019-08-17 18:05 被阅读9次

so库动态载入,修复应用无法安装。

(so库动态加载示例。从asset目录加载so库,安装时不导出so库,不会导致安装失败,运行时生成并载入)

修复方法:

1、将AssetsSo.jar添加至项目的lib目录下:

2、剪切so对应的目录至assets/so/目录下

3、设置Application为sc.tool.so.AssetsSoApp

4、编译运行项目即可

详细说明:

/**

* AssetsSoApp用于so文件运行时动态加载,加载目录为assets/so/

*

* 用法:

*

* 1、将原来libs/目录下的  armeabi、x86、 armeabi-v7a...,直接剪切至assets/so/目录下即可。

* 2、将AndroidManifest.xml中的application设置为:  ;

* 或者 调用 AssetsSoApp.LoadAssetsSo(this);

*

* 注解: lib/目录下的so文件,在应用安装时就会输出,时常会报错导致应用无法正常安装。

* {

* 如:

* 1、Google Play Store – Can’t install app (Error code: -504)

* 2、is not page-aligned - will not be able to open it directly from apk

* 3、Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]

* (此报错修改 aplication属性可以为 android:extractNativeLibs="true"编译的apk可正常运行,可从google play下载却无法安装,还是报第2个错误,

* 干脆修改为so动态加载,就不会报错了,也可正常安装、运行)

* }

*

* 修复原理: so不添加至lib目录,不在应用安装时输出,正常安装。应用运行时,输出对应类型的so库,从该目录下动态加载

*

* @author scimence@163.com

*/

应用安装目录:(若so存放在lib目录下,则在安装apk时,会自动输出)

自定义动态载入目录:(so不存放存到lib目录下,在运行时,输出至该目录,从此处载入)

AssetsSo.jar(so动态载入库)

AssetsSo.zip(源码)

相关文章

  • 安卓,so库动态载入

    so库动态载入,修复应用无法安装。 (so库动态加载示例。从asset目录加载so库,安装时不导出so库,不会导致...

  • Android Studio下NDK编程生成so库说明以及遇到的

    so动态库生成说明以及遇到的坑 关于安卓的so库开发的摸索,以下是我个人的开发经历总...

  • JNI-NDK(Linux平台使用NDK打包so库)

    1、源文件 将以下简单的一个C程序打包成动态SO库提供给安卓使用。 头文件 实现文件 2、Linux平台打SO动态...

  • opencv编译

    安卓: ndk需要16.x.x先cd到opencv-3.4.2_mobile目录下 如果需要编译出.so动态库 i...

  • 2020-05-19

    安卓集成三方so库第一弹 最近整理了下安卓jni使用三方so库的资料。简单写几句。 使用环境win10,Andro...

  • FFmpeg-编译iOS静态库

    下载的ffmpeg一般需要自己编译下,如果在iOS上用编译成静态库.a文件,如果在安卓上用编译成.so动态库。把编...

  • android调用native函数流程

    native调用流程 载入so库 执行上述代码时,程序通过JVM载入这个libtest.so文件;与此同时它会产生...

  • 动态库的制作和使用

    1、动态库的命名方式 动态库命名:lib+库名.so。如libtmath.so 2、动态库的制作和使用 (1)...

  • linux下静态库和动态库创建和使用

    linux静态库 .a ===== win 静态库 .lib linux动态库 .so ==== win动态库 ....

  • 2020-05-22

    安卓集成三方so库第二弹 在第一弹(2020-05-19 - 简书)中介绍了新建native工程实现集成三方so库...

网友评论

    本文标题:安卓,so库动态载入

    本文链接:https://www.haomeiwen.com/subject/suuksctx.html