未知的错误代码在应用程序安装:110 android,应用在华为P9手机上安装失败原因分析 (错误码:-110)...
问题描述:
应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为:
失败原因:
系统问题导致安装失败(错误码:-110)
原因分析:
开始怀疑是android的版本问题,后来看了一下在华为Mate8上面也能正常安装,华为Mate8和华为P9都是android6.0
华为P9 用的是 EMUI 4.1版本,但是华为Mate8用的是EMUI4.0, 初步怀疑是EMUI升级后的问题
打开Logcat,抓取Log后,查看到下面可疑的Log
05-14 19:51:04.094: E/HwCertificationManager(1004): read cert error:read certification file error!
05-14 19:51:04.094: E/HwCertificationManager(1004): read cert failed
05-14 19:51:04.094: E/HwCertificationManager(1004): checkHwCertification parse error
05-14 19:51:04.095: E/installd(534): Couldn't opendir /data/data/com.shb.assistant: No such file or directory
05-14 19:51:04.096: W/PackageManager(1004): Package couldn't be installed in /data/app/com.shb.assistant-1
05-14 19:51:04.096: W/PackageManager(1004): com.android.server.pm.PackageManagerException: hwcertification parse error
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.HwPackageManagerService.checkCertificationInner(HwPackageManagerService.java:3042)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.HwPackageManagerService.checkHwCertification(HwPackageManagerService.java:3024)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.PackageManagerService.scanPackageLI(PackageManagerService.java:6941)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.PackageManagerService.scanPackageLI(PackageManagerService.java:6930)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.PackageManagerService.installNewPackageLI(PackageManagerService.java:12494)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.PackageManagerService.installPackageLI(PackageManagerService.java:13215)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.PackageManagerService.-wrap29(PackageManagerService.java)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.pm.PackageManagerService$10.run(PackageManagerService.java:10799)
05-14 19:51:04.096: W/PackageManager(1004): at android.os.Handler.handleCallback(Handler.java:743)
05-14 19:51:04.096: W/PackageManager(1004): at android.os.Handler.dispatchMessage(Handler.java:95)
05-14 19:51:04.096: W/PackageManager(1004): at android.os.Looper.loop(Looper.java:150)
05-14 19:51:04.096: W/PackageManager(1004): at android.os.HandlerThread.run(HandlerThread.java:61)
05-14 19:51:04.096: W/PackageManager(1004): at com.android.server.ServiceThread.run(ServiceThread.java:46)
05-14 19:51:04.115: I/art(1004): Starting a blocking GC Explicit
分析应该是安装软件的时候,进行了证书的检查,发现软件不符合条件,导致不能安装。
翻看一下源代码:scanPackageLI 这个应该是对APK里的文件进行解析,但是华为肯定是修改了這个函数,添加了一个checkHwCertification的过程。
checkHwCertification里面应该是检查了华为特有的东西。
打开代码 在AndroidManifest.xml 找找有有没有什么华为比较在乎需要检查的东西,,一看果然发现了下个。
把这两个权限一删除,软件就可以正常安装了。
打开华为的官方文档,找到下面一段说明:
2.3 将华为证书打包到开发者应用中
使用上面提到的“DevPack.exe”工具,将刚刚下载的华为证书打包到开发者 APK 中:
到這里原因以及很明白了,就是开发这没有把证书加入到APK里面,导致安装的检查证书不通过。安装失败。
但是华为也很不地道,之前都没有这个过程,到P9上忽然加上这个限制,没有任何说明,直接就是软件安装失败。让广大开发者情何以堪。做android应用开发的小伙伴真是不容易,要应付形形色色的奇葩兼容性问题。
解决方案:
去掉角标功能,一般的应用是无法通过华为的审核的。在 AndroidManifest.xml删除下面的权限申明:
<
uses-permission
android:name=
"com.huawei.android.launcher.permission.CHANGE_BADGE"
/>
把华为的证书打包到应用里面。
未知的错误代码在应用程序安装:110 android,应用在华为P9手机上安装失败原因分析 (错误码:-110)...相关推荐
- 应用在华为P9手机上安装失败原因分析 (错误码:-110)
问题描述: 应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为: 失败原因: 系统问题导致安装失败(错误码:-110) 原因分析: 开始怀疑是android的版本问题,后来看 ...
- 安卓怎么下载python-教你在安卓手机上安装python程序
编程就是告诉计算机要做什么,计算机只是一些没有生命的机器,它们可不知道自己要做什么,一切都得你来告诉它.对于计算机是这样,对于安卓手机也是这样.本文将教授大家在如何在安卓手机上安装Python程序,有 ...
- 关于Android系统中“你的手机上未安装应用程序”问题
有时候我们把写好的APK安装到Android系统中后,点击应用程序图标后程序并不运行,却提示"你的手机上未安装应用程序",这个问题多半是AndroidManifest.xml文件不 ...
- 苹果怎么应用分身_怎么在安卓手机上安装苹果的应用程序和游戏?你要了解的最佳方案...
想要在Android上使用IOS模拟器运行苹果IOS应用程序的原因有很多.譬如有些应用程序和游戏只能在IOS上使用,而不能在Android上使用.或者是有些选择在iOS平台上首发的游戏,需要一段时间后 ...
- 在安卓手机上安装Ubuntu详细教程(无需root)
在安卓手机上安装Ubuntu详细教程(无需root) Android系统是基于Linux的,但是要在安卓上安装Linux却没有那么容易.本文法针对安卓手机上安装Ubuntu系统提出了一种方法,安 ...
- HTML5定稿了,终于有一种编程语言开发的程序可以在Android和IOS两种设备上运行了
过去这些年,HTML5 颠覆了 PC 互联网的格局,优化了移动互联网的体验,接下来,HTML5 将颠覆原生 App 世界.这听起来有点危言耸听,但若认真分析 HTML5 的发展史,你会发现,这个世界的 ...
- kali安装卡在最后一步_黑客系统指南-在安卓手机上安装kali分步教程
总结一些小笔记,下面我将会分享给大家在安卓手机上安装kali的详细步骤. 首先是把手机ROOT,不想忍受小米官方root的25秒骚扰,就想刷个原生的系统.我用的手机是小米NOTE 顶配版,这个手机版本 ...
- 华为nova4手机Termux安装Linux教程
手机配置:华为nova4,手机 上Termux安装Linux,跑scrapy. 如果你按照我的步骤一定也可以成功在手机上搭建一个Linux系统,且手机不需要root权限. 原创不易,如果文章对你有帮助 ...
- 小米手机上安装https证书(例如pem证书,crt证书)详解
小米手机上安装https证书(例如pem证书,crt证书)关键三步: 1.使用第三方浏览器下载.pem 格式的文件 (我使用的是QQ浏览器) 2.将这个文件放入小米的 DownLoad 文件夹下 (这 ...
最新文章
- android基础ui控件,Android基础——基础UI控件
- 苹果用户可以自修手机了!原厂零件工具都能买,网友:iScrew螺丝刀600多块?...
- 前端CSS基础7.8
- 现代分层、聚集聚类算法_分层聚类:聚集性和分裂性-解释
- python爬取新闻网站标题_python如何正确抓取网页标题
- ajax 链接java_如何使用ajax将下拉菜单链接到表
- python中的*args和**kwargs(* 与 **)
- Android 图形驱动初始化(二十三)
- Nginx源码包软件安装步骤
- fifaol4服务器维护,新闻|FIFAOL4 5月7日停机维护公告
- 修改android设备型号
- python绘图——坐标轴
- oracle 表数据删除后恢复还原
- 《MySQL DBA:SSL连接》
- ❤️连续面试失败后,我总结了57道面试真题❤️,如果时光可以倒流...(附答案,建议收藏)
- jsp mysql留言板制作_Jsp+mysql 制作留言板
- 最新Maven(apache-maven-3.8.6)在Win10安装部署(超详细)
- 我用深度学习做个视觉AI微型处理器!
- kali 火路的使用
- ERP与电子商务融合破冰