错误 -- Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
2016-04-01 14:32
555 查看
/article/1971905.html
修改Android系统APK(DownloadProvider)完成后, 运行报错:
[2012-05-07 19:45:54 - DownloadProviderUI] Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
[2012-05-07 19:45:54 - DownloadProviderUI] Please check logcat output for more details.
[2012-05-07 19:45:54 - DownloadProviderUI] Launch canceled!
到网上搜索验证后, 发现在 AndroidManifest.xml的头文件中多了这个属性"android:sharedUserId="android.media" , 网上 , 有人说只要把这个属性删除就行了. 删除这个属性确实能够安装成功, 但是运行会报错. 然后继续搜索, 发现要想成功安装该apk, 必须对其进行签名.
以下是签名步骤:
1、用eclipse编译出apk(ClockSetting.apk)文件,但这个文件不能用,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件
2、使用当前android系统(android系统可能不同)的platform密钥来重新给apk文件签名(可能还未用用户米要签名)。
首先,找到密钥文件,在我的Android源码目录中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。
然后,用Android提供的SignApk工具来签名,signapk的源代码是在"build\tools\signapk"下,这时得为下面的编译工作做些准备:
<1>、编译jar
命令行cd到signapk.java代码目录下,
javac signapk.java
获取SignApk$SignatureOutputStream.class和SignApk.class
建立目录s\com\android\signapk,将两个class文件放入目录下
jar cvfm signapk.jar SignApk.mf -C s\ .
注意:"s\"后面的"."前面有空格
生成signapk.jar文件,得到了Android提供的签名程序signapk.jar
<2>、用目标系统的platform密钥签名
将platform.pk8和platform.x509.pem文件(注意: 这两个文件根据AndroidManifest.xml头文件属性android:sharedUserId="android.media"来决定使用哪个签名.)复制到"D:\myandroid_mx27\build\tools\signapk"目录下,即signapk.jar和SignApk.mf所在的目录。
java -jar signapk.jar platform.x509.pem platform.pk8 D:\ClockSetting.apk D:\ClockSettingSigned.apk
我的未签名(ClockSetting.apk)和已签名(ClockSettingSigned.apk)apk文件都放在D盘,这样就得到了用Android源码编译的文件。
系统签名部分转载网友: elao520 的文章(详情: http://www.eoeandroid.com/thread-46074-1-1.html)
修改Android系统APK(DownloadProvider)完成后, 运行报错:
[2012-05-07 19:45:54 - DownloadProviderUI] Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
[2012-05-07 19:45:54 - DownloadProviderUI] Please check logcat output for more details.
[2012-05-07 19:45:54 - DownloadProviderUI] Launch canceled!
到网上搜索验证后, 发现在 AndroidManifest.xml的头文件中多了这个属性"android:sharedUserId="android.media" , 网上 , 有人说只要把这个属性删除就行了. 删除这个属性确实能够安装成功, 但是运行会报错. 然后继续搜索, 发现要想成功安装该apk, 必须对其进行签名.
以下是签名步骤:
1、用eclipse编译出apk(ClockSetting.apk)文件,但这个文件不能用,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件
2、使用当前android系统(android系统可能不同)的platform密钥来重新给apk文件签名(可能还未用用户米要签名)。
首先,找到密钥文件,在我的Android源码目录中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。
然后,用Android提供的SignApk工具来签名,signapk的源代码是在"build\tools\signapk"下,这时得为下面的编译工作做些准备:
<1>、编译jar
命令行cd到signapk.java代码目录下,
javac signapk.java
获取SignApk$SignatureOutputStream.class和SignApk.class
建立目录s\com\android\signapk,将两个class文件放入目录下
jar cvfm signapk.jar SignApk.mf -C s\ .
注意:"s\"后面的"."前面有空格
生成signapk.jar文件,得到了Android提供的签名程序signapk.jar
<2>、用目标系统的platform密钥签名
将platform.pk8和platform.x509.pem文件(注意: 这两个文件根据AndroidManifest.xml头文件属性android:sharedUserId="android.media"来决定使用哪个签名.)复制到"D:\myandroid_mx27\build\tools\signapk"目录下,即signapk.jar和SignApk.mf所在的目录。
java -jar signapk.jar platform.x509.pem platform.pk8 D:\ClockSetting.apk D:\ClockSettingSigned.apk
我的未签名(ClockSetting.apk)和已签名(ClockSettingSigned.apk)apk文件都放在D盘,这样就得到了用Android源码编译的文件。
系统签名部分转载网友: elao520 的文章(详情: http://www.eoeandroid.com/thread-46074-1-1.html)
相关文章推荐
- hdu 1787 GCD Again
- [HDU1787]GCD Again(根n求phi)
- wait函数返回值总结
- Rails Assets Pipeline
- Rails服务器推送技术
- Rails应用部署
- Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missi
- 对人工智能中“极大极小值”的博弈算法的资料整理。
- mdadm命令及RAID的实现
- hdoj 4819 Mosaic 【二维线段树 单点更新 区间查询】
- div#container{ margin-left:auto; margin-right:auto; width:168px; }
- [CS231n-CNN] Training Neural Networks Part 1 : parameter updates, ensembles, dropout
- Autolayout约束动画化-Animating Autolayout Constraints
- CONTAINING_RECORD
- 217. Contains Duplicate
- 对包装类DataInputStream/DataOutputStream的应用
- LeetCode 336. Palindrome Pairs
- HDU-3065 病毒侵袭持续中 (fail指针)
- RAID的基本原理
- Error:(1, 0) Your project path contains non-ASCII characters.