错误日志:


03-20 00:29:58.875   597   597 W PackageManager: Instruction set mismatch, PackageSetting{234cf3a com.android.xdsclient/1000} requires arm whereas PackageSetting{38ca960 android/1000} requires arm64
03-20 00:29:58.875   597   597 W PackageManager: Instruction set mismatch, PackageSetting{234cf3a com.android.xdsclient/1000} requires arm whereas PackageSetting{8d19963 android.rockchip.update.service/1000} requires arm64
03-20 00:29:58.875   597   597 W PackageManager: Instruction set mismatch, PackageSetting{234cf3a com.android.xdsclient/1000} requires arm whereas PackageSetting{c36d1db com.android.gallery3d/1000} requires arm64
03-20 00:29:58.875   597   597 I PackageManager: Adjusting ABI for com.android.settings to armeabi (requirer=com.android.xdsclient, scannedPackage=null)
03-20 00:29:58.876   597   597 I PackageManager: Adjusting ABI for com.DeviceTest to armeabi (requirer=com.android.xdsclient, scannedPackage=null)03-20 00:32:24.691  2793  2793 W System  : ClassLoader referenced unknown path: /system/priv-app/Settings/lib/arm64
03-20 00:32:24.719  2793  2793 D AndroidRuntime: Shutting down VM
03-20 00:32:24.721  2793  2793 E AndroidRuntime: FATAL EXCEPTION: main
03-20 00:32:24.721  2793  2793 E AndroidRuntime: Process: com.android.settings, PID: 2793
03-20 00:32:24.721  2793  2793 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate application com.android.settings.SettingsApplication: java.lang.ClassNotFoundException: Didn't find class "com.android.settings.SettingsApplication" on path: DexPathList[[zip file "/system/priv-app/Settings/Settings.apk"],nativeLibraryDirectories=[/system/priv-app/Settings/lib/arm64, /system/priv-app/Settings/Settings.apk!/lib/armeabi, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at android.app.LoadedApk.makeApplication(LoadedApk.java:802)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5399)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at android.app.ActivityThread.-wrap2(ActivityThread.java)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1551)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:154)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6141)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
03-20 00:32:24.721  2793  2793 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)

看log去确认是否有so或jar不存在,发现确实是有的,而且只是概率性不行

后面发现系统是64位,而预装应用只有32位库且是带有系统进程android.uid.system的应用 <com.android.xdsclient/1000>

1000代表 android.uid.system

同一个uid的应用不能32位和64位混着用。

解决方法:

1..在apk对应的android.mk中

LOCAL_DEX_PREOPT := nostripping

2.  device/rockchip/xx/BoardConfig.mk
DEX_PREOPT_DEFAULT := nostripping

推荐APK修改

拓展参考<https://blog.csdn.net/lulus_tecpath/article/details/107366904>

https://blog.csdn.net/weiqifa0/article/details/88754221

android加载so文件的机制 apk在安装的过程中,系统就会对apk进行解析根据app的primaryCpuAbi值,确定这个apk安装是在32还是64位的虚拟机上,如果是32位虚拟机那么就不能使用64位so,如果是64位虚拟机也不能使用32位so。

而64位设备可以提供32和64位两种虚拟机,根据apk选择开启哪一种,因此说64位设备兼容32的so库。具体来说就是apk在安装的时候,apk解包的时候,就已经确定要加载多少位的库了,如果apk里面放有两种库,实际用的时候,也是只会加载一种库。

apk架构确定顺序

  1. 如果apk包中lib文件夹下有.so库,就根据这个.so库的架构模式,确定app的primaryCpuAbi的值
  2. 2.对于system app, 如果没法通过第一步确定primaryCpuAbi的值,PKMS会根据/system/app/${APP_NAME}/lib和/system/app/${APP_NAME}/lib64这两个文件夹是否存在,来确定它的primaryCpuAbi的值
  3. 3.对于还没有确定的app, 在最后还会将自己的primaryCpuAbi值与和他使用相同UID的package的值设成一样
  4. 4.对于到这里还没有确认primaryCpuAbi的app,就会在启动进程时使用ro.product.cpu.abilist这个property的值的第一项作为它关联的ABI

7.1 预装客户应用 导致设置等系统应用几率报错相关推荐

  1. SAP ABAP 因系统维护使ABAP语法不再被支持导致使用很久的程序报错问题之分析

    SAP ABAP 因系统维护使ABAP语法不再被支持导致使用很久的程序报错问题之分析 所在项目客户的一家工厂上线已经超过半年,其业务部门提出一个使用了半年的RF枪程序,突然不能使用了.程序直接Dump ...

  2. 【踩坑记录】mybatis-plus的insert方法,默认会生成一个uuid作为主键,导致类型不一致,存入数据库报错

    [踩坑记录]mybatis-plus的insert方法,默认会生成一个uuid作为主键,导致类型不一致,存入数据库报错 报错记录 解决方案 推荐方案 使用uuid作为主键,修改id的类型为bigint ...

  3. redis设置主从复制-slave Replication--解决报错:(error) READONLY You can't write against a read only slave.

    我的个人博客:zhang0peter的个人博客 主节点按照我上篇文章的内容配好redis后就可以了:ubuntu, debian 安装redis,设置开机自动启动和密码,允许外网访问 在从节点安装好r ...

  4. room区域规则设置减少design rule error报错数量

    下图中标注的区域显示过孔的距离不符合规则,出现9个报错,观察后知道这个地方过孔距离太小不会导致电路出错,所以此处的过孔距离可以设置为更小的值:比如"0"来去掉报错: 方法步骤1:设 ...

  5. c# 传递Null的string值导致的调用C++的dll报错 Attempted to read or write protected memory.

    c# 调用C++的dll报错 Attempted to read or write protected memory: 原因是:c# 传递Null的string值导致的,将Null改为string.e ...

  6. nginx 缓存区太小导致后台Connection reset by peer 报错

    问题概述:图片bit 64生成数据流太大,导致小程序分享弹窗的二维码图片生成失败 后台报错: 排查: Client------>nginx------->h5------>nginx ...

  7. 迅雷插件导致js获取后端返回结果报错问题

    最近在调试公司一个项目,其中使用了js,在登录该系统时,页面不能正常跳转.但是我使用别的浏览器(调试使用的是谷歌浏览器)能够正常跳转.这就很奇怪,使用页面调试工具,获取到后端的返回结果如下图: < ...

  8. video.js在vue项目中设置中文语言包,报错videojs is not defined 解决办法

    在vue项目中使用video.js时要求中文化,但是网上的解决办法不太好找,特此记录一下. 错误步骤: 根据网上的教程,找到中文包在node_modules/video.js/dist/lang/zh ...

  9. mysql创建数据库没有默认值报错_详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题...

    现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00",出现异常:Invalid default value for 'time' 原因 ...

最新文章

  1. 如何在Mac环境下搭建svn服务器端环境
  2. 消息队列—经典5连问—你能抗几道?
  3. krylov子空间迭代法
  4. SQLite3.8.4.2在Windows平台下的编译和使用
  5. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(Matplotlib绘图基础<1>python)
  6. dnn神经网络 缺点_抄近路神经网络如何因找捷径而犯错
  7. 计算机视觉—TensorFlow入门(5)
  8. Lambda表达式公共拼接函数(原创)
  9. 解析json对象出现$ref: $.list[0]的解决办法
  10. 黑苹果Mojave下驱动高通模块Atheros DHXA-195(AR9285无线网卡和AR3011 蓝牙3.0)
  11. 经纬度坐标相互转换度分秒
  12. 微型计算机软硬件论文,关于微型计算机软硬件论文3000字_微型计算机软硬件毕业论文范文模板...
  13. Flink二:IngestionTime与ProcessingTime
  14. Vue 可暂停计时器
  15. python爬取B站视频弹幕分析并制作词云
  16. 初学HTML5:Web workers
  17. 有关系统DLL文件大全
  18. java jdk 8u101_JDK1.8安装
  19. python实验五答案_Python实验五
  20. 手机号,邮箱正则匹配验证

热门文章

  1. android动画篇——动画加速器
  2. Scrum Alliance国际Scrum中文认证和敏捷教练职业发展体系
  3. 2.哥德巴赫猜想是任何不小于4的偶数,都可以写出两个质数之和的形式。它是世界三大数学难题之一,至今没有被完全证明。编写一个多线程程序验证100000000以内哥德巴赫猜想是对的。
  4. Android CPU, Compilers, D8 R8
  5. python rgb2gray 将rgb图像转换为gray图像
  6. 满屏飞舞的心HTML动画,使用snowfall.jquery.js实现爱心满屏飞的效果
  7. python,求约数,开方法
  8. python numba class_Numba 开发手册 (二)
  9. SQL数据类型 bigint、int、mediumint、smallint、tinyint 取值范围,占位
  10. 每日言论:『恐惧来自未知』