问题描述:

应用在之前的华为手机上都能正常安装,但是在华为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)...相关推荐

  1. 应用在华为P9手机上安装失败原因分析 (错误码:-110)

    问题描述: 应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为: 失败原因: 系统问题导致安装失败(错误码:-110) 原因分析: 开始怀疑是android的版本问题,后来看 ...

  2. 安卓怎么下载python-教你在安卓手机上安装python程序

    编程就是告诉计算机要做什么,计算机只是一些没有生命的机器,它们可不知道自己要做什么,一切都得你来告诉它.对于计算机是这样,对于安卓手机也是这样.本文将教授大家在如何在安卓手机上安装Python程序,有 ...

  3. 关于Android系统中“你的手机上未安装应用程序”问题

    有时候我们把写好的APK安装到Android系统中后,点击应用程序图标后程序并不运行,却提示"你的手机上未安装应用程序",这个问题多半是AndroidManifest.xml文件不 ...

  4. 苹果怎么应用分身_怎么在安卓手机上安装苹果的应用程序和游戏?你要了解的最佳方案...

    想要在Android上使用IOS模拟器运行苹果IOS应用程序的原因有很多.譬如有些应用程序和游戏只能在IOS上使用,而不能在Android上使用.或者是有些选择在iOS平台上首发的游戏,需要一段时间后 ...

  5. 在安卓手机上安装Ubuntu详细教程(无需root)

    在安卓手机上安装Ubuntu详细教程(无需root)    Android系统是基于Linux的,但是要在安卓上安装Linux却没有那么容易.本文法针对安卓手机上安装Ubuntu系统提出了一种方法,安 ...

  6. HTML5定稿了,终于有一种编程语言开发的程序可以在Android和IOS两种设备上运行了

    过去这些年,HTML5 颠覆了 PC 互联网的格局,优化了移动互联网的体验,接下来,HTML5 将颠覆原生 App 世界.这听起来有点危言耸听,但若认真分析 HTML5 的发展史,你会发现,这个世界的 ...

  7. kali安装卡在最后一步_黑客系统指南-在安卓手机上安装kali分步教程

    总结一些小笔记,下面我将会分享给大家在安卓手机上安装kali的详细步骤. 首先是把手机ROOT,不想忍受小米官方root的25秒骚扰,就想刷个原生的系统.我用的手机是小米NOTE 顶配版,这个手机版本 ...

  8. 华为nova4手机Termux安装Linux教程

    手机配置:华为nova4,手机 上Termux安装Linux,跑scrapy. 如果你按照我的步骤一定也可以成功在手机上搭建一个Linux系统,且手机不需要root权限. 原创不易,如果文章对你有帮助 ...

  9. 小米手机上安装https证书(例如pem证书,crt证书)详解

    小米手机上安装https证书(例如pem证书,crt证书)关键三步: 1.使用第三方浏览器下载.pem 格式的文件 (我使用的是QQ浏览器) 2.将这个文件放入小米的 DownLoad 文件夹下 (这 ...

最新文章

  1. android基础ui控件,Android基础——基础UI控件
  2. 苹果用户可以自修手机了!原厂零件工具都能买,网友:iScrew螺丝刀600多块?...
  3. 前端CSS基础7.8
  4. 现代分层、聚集聚类算法_分层聚类:聚集性和分裂性-解释
  5. python爬取新闻网站标题_python如何正确抓取网页标题
  6. ajax 链接java_如何使用ajax将下拉菜单链接到表
  7. python中的*args和**kwargs(* 与 **)
  8. Android 图形驱动初始化(二十三)
  9. Nginx源码包软件安装步骤
  10. fifaol4服务器维护,新闻|FIFAOL4 5月7日停机维护公告
  11. 修改android设备型号
  12. python绘图——坐标轴
  13. oracle 表数据删除后恢复还原
  14. 《MySQL DBA:SSL连接》
  15. ❤️连续面试失败后,我总结了57道面试真题❤️,如果时光可以倒流...(附答案,建议收藏)
  16. jsp mysql留言板制作_Jsp+mysql 制作留言板
  17. 最新Maven(apache-maven-3.8.6)在Win10安装部署(超详细)
  18. 我用深度学习做个视觉AI微型处理器!
  19. kali 火路的使用
  20. ERP与电子商务融合破冰

热门文章

  1. 2017年谷歌做了哪些好设计?
  2. 如何做移动O2O产品的运营推广
  3. KingRan库配置京东账号
  4. sizeof是c语言的一种运算符,kingsize是什么意思? C语言中sizeof是什么意思
  5. leetcode-每日打卡-1371. 每个元音包含偶数次的最长子字符串
  6. libcurl中上传文件的坑-英文操作系统中文路径无法上传返回26错误码
  7. 积分-钉钉考勤-取参与考勤人员
  8. 选股公式关于尾盘内容选股公式最新的中线股票指标
  9. 硬件工程师薪资虚高,你认可吗?
  10. 在线剪切板、在线拼音输入法