项目场景:

在无系统签名的情况下,将第三方APP内置到/system/app目录下,可以将第三方应用变为系统应用,用户无法直接卸载。不过前提是手机需要root。


问题描述

使用es文件管理工具将第三方应用的apk文件添加到/system/app目录下,可能会出现加载so文件报错,例如:

java.lang.UnsatisfiedLinkError: Couldn't load ijkffmpeg from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/system/app/tets   .apk"],
nativeLibraryDirectories=[/vendor/lib, /system/lib]]]: findLibrary returned null

原因分析:

主要原因有两种:
1,apk打包时,没有添加对应的cpu架构。
2,系统在安装该目录下的app时不会自动安装相应的so文件,所以需要手动将apk所需要的so文件复制到对应的目录下。如上报错的目录:/system/lib,/vendor/lib目录。


解决方案:

一,查看项目是否添加了对应的cpu架构。
1,查看android设备的cpu架构类型:

//adb执行命令
cat /proc/cpuinfo其中:
CPU architecuture: 7    //7为arm-v7,8为arm-v8

2,查看项目的build.gradle是否添加了对应的cpu架构

ndk {// 设置支持的SO库架构setAbiFilters(["armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"])}sourceSets {main {jniLibs.srcDirs = ['libs']}}

gradle.properties添加

android.useDeprecatedNdk=true

3,打包成功后对应的apk文件的lib目录下会有对应架构的so文件。

二,添加到系统目录
1,先普通安装一次apk,获取其所需的so文件。正常安装的情况下,apk目录为:/data/app。对应的so文件在/data/data/包名/lib 目录下。
2,将该目录下的so文件复制到报错时指出的目录下,/system/lib下。
3,卸载正常安装的apk,并将其安装包放到/system/app目录下
4,重启安卓设备即可。

android内置第三方APP为系统应用,第三方APP内置到/system/app目录下报错java.lang.UnsatisfiedLinkError,so文件不加载相关推荐

  1. 【错误记录】Android Studio 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | 指定 APK 打包动态库的 CPU 架构 )

    文章目录 一.报错信息 二.解决方案 ( 指定 APK 打包动态库的 CPU 架构 ) 一.报错信息 外部引用 so 动态库 , 如果只有一个 armeabi-v7a 的动态库 , 那么如果在 arm ...

  2. 【错误记录】NDK 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | Android Studio 配置外部 so 动态库两种方法 )

    文章目录 一.报错信息 二.解决方案 ( Android Studio 配置外部 so 动态库两种方法 ) 1.jniLibs 目录存放 2.libs 目录存放 一.报错信息 外部引用 so 动态库 ...

  3. JAVA第三方包导入但找不到类,解决:导入第三方包报错java.lang.NoClassDefFoundError:XXX.XXX,XXXXXX...

    报错信息如下,主要是导入androidpn测试client端,结果报错 04-02 16:28:34.325: E/dalvikvm(485): Could not find class 'org.a ...

  4. 【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )

    文章目录 一.报错信息 二.问题分析 一.报错信息 从 DEX 文件加载 Activity 组件 , 运行时报如下错误 ; 2021-12-12 14:02:52.432 5342-5342/com. ...

  5. Android Studio报错 “java.lang.IllegalStateException: Room cannot verify the data integrity” 解决方法

    最近在Android Studio遇到以下报错: Caused by: java.lang.IllegalStateException: Room cannot verify the data int ...

  6. android中有米广告报错java.lang.NoClassDefFoundError: net.youmi.android.AdManager

    java.lang.NoClassDefFoundError: net.youmi.android.AdManager 这是新版ADT需要把引用第三方的jar目录设为source folder--这  ...

  7. 我的Android进阶之旅------gt;Android中MediaRecorder.stop()报错 java.lang.RuntimeException: stop failed....

    今天在调用MediaRecorder.stop(),报错了,java.lang.RuntimeException: stop failed. E/AndroidRuntime(7698): Cause ...

  8. Android Studio编译报错:“ java.lang.OutOfMemoryError: Java heap space”

    前言: 最近换了工作,到了新东家,厂子大了,人也多了,希望在新的环境中不断成长.在上家公司电脑是最好的,新的公司就是一般配置,内存只有8G,因此Android Studio3.5编译报错:java.l ...

  9. 报错java.lang.ClassCastException: XXXXXXX.Application cannot be cast to android.app.MyApplicati

    最近做百度地图,发现这种错误一般是AndroidManifest.xml中配置有错. <application     android:icon="@drawable/icon&quo ...

最新文章

  1. Worktile荣登2020中关村国际前沿科技创新大赛大数据与云计算领域TOP10
  2. Javapinyin4J实现中文名转拼音
  3. Stopwatch类学习
  4. Take Your Seat Gym - 102222D
  5. 让你的silverlight更炫(一):从自定义控件说起
  6. 敏捷开发团队管理系列之二:程序与测试团队I
  7. ElementUI 按需引入坑爹的点记录
  8. 高斯正反算 java_高斯投影正反算的代码
  9. java Session生命周期讨论
  10. linux 下网站压力测试工具webbench
  11. fseek函数与ftell函数使用例程
  12. android 打电话区号,Android Q新功能首曝:漫游自动加拨国际区号
  13. IDEA 社区版进行 Web 开发
  14. 11 种主要神经网络结构图解
  15. 直播弹幕互动游戏如何开播?
  16. 中国电信 CTWing 物联网平台运营数据大解密
  17. java8 stream collectors.joining
  18. QT-----无人机地面站如何修改显示界面1——OpenPilotGCS_config.xml
  19. 【Ware】免费的格式转换软件推荐
  20. FPGA的设计艺术(7)STA实战之SmartTime时序约束及分析示例(II)

热门文章

  1. 【OS】操作系统高频面试题英文版(1)
  2. 0xC0000005: 写入位置 0x00000000 时发生访问冲突
  3. 软件著作权登记需交什么材料
  4. 《优秀的绵羊》威廉德雷谢维奇_epub+mobi+azw3
  5. 菲律宾亚洲计算机研究所,菲律宾中部最好的五所大学
  6. F5负载均衡器的功能介绍
  7. 后端服务器网络编程之 IO 模型
  8. 页面禁止用户输入中文实现方式
  9. Shiro-Base64加密解密,Md5加密
  10. Spring数据源的灵活配置巧应用