Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

eclipse编译出来的apk,安装时报出INSTALL_FAILED_SHARED_USER_INCOMPATIBLE的错误。
原因:apk的AndroidManifest.xml中声明了android:sharedUserId="android.uid.system",但没有相应的签名
解决方案:
1. 找到编译目标系统时的签名证书platform.pk8和platform.x509.pem,在android源码目录build\target\product\security下。
没有那两个证书的话,可以直接从本链接下载相关资料.

2. 将签名工具(signapk.jar)、签名证书(platform.pk8和platform.x509.pem)及编译出来的apk文件都放到同一目录

3.执行签名命令:
signapk.jar platform.x509.pem platform.pk8 Demo.apk signedDemo.apk

4.将signedDemo.apk安装即可

类似地,在android源码树编译也会存在同样的问题,解决方法类似。
或直接把目标系统的签名证书platform.pk8和platform.x509.pem(根据android.mk文件的LOCAL_CERTIFICATE 定义,也可能是shared.pk8、media.pk8等)覆盖到build\target\product\security也可,这样就不需要再手工签名了。  



5.出现报错问题:
java.util.zip.ZipException: error in opening zip file有可能是压缩问题。

  

在执行signapk.jar platform.x509.pem platform.pk8 Demo.apk signedDemo.apk出错:

[python]  view plain  copy
  1. $ zip -qry ../update_unsigned.zip ./  
  2. $ java -Xmx2048m -jar ./signapk.jar -w ./build/target/product/security/testkey.x509.pem ./build/target/product/security/testkey.pk8 update.unsigned.zip update.zip  
  3. java.util.zip.ZipException: error in opening zip file  
  4.         at java.util.zip.ZipFile.open(Native Method)  
  5.         at java.util.zip.ZipFile.<init>(ZipFile.java:114)  
  6.         at java.util.jar.JarFile.<init>(JarFile.java:133)  
  7.         at java.util.jar.JarFile.<init>(JarFile.java:112)  
  8.         at com.android.signapk.SignApk.main(SignApk.java:532)  
  9. $  

 
 

   问题出在了signapk.jar
使用图形化压缩没有问题.只是一种可能,记录下来.

java.util.zip.ZipException: error in opening zip file有可能是压缩问题

猜你喜欢

转载自blog.csdn.net/u011784994/article/details/79360250