问题描述:

应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为:
失败原因:
系统问题导致安装失败(错误码:-110)

原因分析:

  1. 开始怀疑是android的版本问题,后来看了一下在华为Mate8上面也能正常安装,华为Mate8和华为P9都是android6.0
  2. 华为P9 用的是 EMUI 4.1版本,但是华为Mate8用的是EMUI4.0, 初步怀疑是EMUI升级后的问题
  3. 打开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里面应该是检查了华为特有的东西。
  1. 打开代码 在AndroidManifest.xml 找找有有没有什么华为比较在乎需要检查的东西,,一看果然发现了下个。
<!--华为角标-->
<uses-permissionandroid:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permissionandroid:name="com.huawei.permission.sec.MDM"/>
  1. 把这两个权限一删除,软件就可以正常安装了。
  2. 打开华为的官方文档,找到下面一段说明:
    2.3 将华为证书打包到开发者应用中
    使用上面提到的“DevPack.exe”工具,将刚刚下载的华为证书打包到开发者 APK 中:
到這里原因以及很明白了,就是开发这没有把证书加入到APK里面,导致安装的检查证书不通过。安装失败。
但是华为也很不地道,之前都没有这个过程,到P9上忽然加上这个限制,没有任何说明,直接就是软件安装失败。让广大开发者情何以堪。做android应用开发的小伙伴真是不容易,要应付形形色色的奇葩兼容性问题。

解决方案:

  1. 去掉角标功能,一般的应用是无法通过华为的审核的。在 AndroidManifest.xml删除下面的权限申明:
<!--华为角标-->
<uses-permissionandroid:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permissionandroid:name="com.huawei.permission.sec.MDM"/>
  1. 把华为的证书打包到应用里面。

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

  1. 未知的错误代码在应用程序安装:110 android,应用在华为P9手机上安装失败原因分析 (错误码:-110)...

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

  2. 自己开发的App在华为荣耀系列手机上安装失败,“未包含任何证书”

    自己开发的App在华为荣耀系列手机上安装失败,"未包含任何证书" 问题描述 问题解决方法 内容扩展 问题描述 自己使用Android Studio开发的App打包生成apk之后,在 ...

  3. apk 在个别手机上安装失败,提示软件包损坏

    前几天,更新APP版本,APP在应用宝上架后,在华为手机和公司其他测试机上可以正常下载安装没有问题,但是在魅族机上却提示安装失败,软件包已损坏,想了很多种可能,像文件残留等,但是都没有效果,最终发现原 ...

  4. Saleae Logic USB逻辑分析仪(SX24M8)安装失败原因分析

    工作环境(蓝色粗体字为特别注意内容) 1,软件环境:Windows 7 Ultimate sp1.Logic Setup 1.1.15 (32-bit) 2,参考文献: ① https://bbs.c ...

  5. 【Android错误解决方案】解决AndroidStudio在oppo和vivo手机上安装apk失败----终极解决方案

    文章目录 [Android错误解决方案]解决AndroidStudio在oppo和vivo手机上安装apk失败---终极解决方案 问题描述 错误描述 解决方案一 解决方案二 总结 [Android错误 ...

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

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

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

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

  8. 华为p9手机恢复出厂设置了如何找回

    新买的华为p9手机,刚拿到手总是很新奇了,时不时的就喜欢拿出来捣鼓捣鼓,不知道就怎么点到出厂设置了,一下子刚存好的电话,照片,短信,全没了.出厂设置就相当与对华为p9手机进行了格式化,这样的情况下,还 ...

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

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

最新文章

  1. 24招加速你的Python,超级实用!
  2. GAN完整理论推导与实现,Perfect!
  3. 泼冷水:反思机器学习5年大跃进(附论文)
  4. 微信小程序开发-笔记
  5. TreeView的复选框隐藏 重新整理
  6. Oracle学习:视图与索引
  7. tmemo 选择消除行_无线耳机新选择
  8. 《图解HTTP》-读
  9. C++ 智能指针简介
  10. Vue:文章新闻界面,点击上一篇下一篇界面不重新加载解决方案
  11. “蔡徐坤微博转发过亿”幕后推手一审获刑五年
  12. 下载论文的技巧及经验
  13. java opencv 模板匹配算法_浅谈opencv模板匹配算法原理
  14. 【金三银四】TCP,UDP,Socket,Http网络编程面试题(2021最新版)
  15. 2018 初入IT十年(上)----成为一名优秀的程序员
  16. Androidapk安装流程之adb安装
  17. isset与empty的区别
  18. 实际场景架构图实例及详细说明
  19. [git] your branch is ahead of ... 解决办法
  20. 深入探讨分类模型评价指标

热门文章

  1. 观看慕课老师milanlover视频JSP内置对象+getpost+request+response+请求转发与请求重定向
  2. 驱动下如何获取硬盘序列号
  3. WIN32 ListView 实现间隔色的2种方法
  4. [转]桌面图标坏了的处理办法
  5. 如何批量修改文件名中的一部分?
  6. 如何识别图片验证码?
  7. 计算机二级开封大学通过率,考生注意:河南这所学校专科层次,本科名字,千万不要弄错...
  8. 虚拟计算机 VMWare安装使用指南
  9. Python--Matplotlib数据可视化教程(散点图)
  10. 13 MySQL-优化