shared user id / Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

來源:互聯網
上載者:User

-----

在windows平台通過eclipse編譯android源碼中,如果編譯Settings或者android manifest XML中 shared user id 包含android.uid.shared等系統許可權的時候,則會報以下錯誤。

Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

INSTALL_FAILED_UPDATE_INCOMPATIBLE
1、由於卸載沒有完全,可以使用設定中卸載相應應用,或者adb uninstall com.android.***

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
主要是由於使用了android.uid.shared導致的問題。
解決方案如下
   第一個方法簡單點,不過需要在Android系統源碼的環境下用make來編譯:

   1. 修改Android.mk檔案,加入LOCAL_CERTIFICATE := platform這一行
   2. 使用mm命令來編譯,產生的apk就可以在模擬器中運行了。
  
   
   第二個方法麻煩點,不過不用開虛擬機器跑到源碼環境下用make來編譯:
   
   1. 使用eclipse編譯出apk檔案,但是這個apk檔案是不能用的。
   2. 查看Android.mk檔案,加入LOCAL_CERTIFICATE := 這一行,根據這行的內容,選擇相應的簽名。
     platform----->platform.pk8和platform.x509.pem
     shared  ----->shared.pk8和shared.x509.pem
   3. 使用目標系統的platform密鑰來重新給apk檔案簽名。這步比較麻煩,
      首先找到密鑰檔案,在我的Android源碼目錄中的位置
      是"build/target/product/security",下面的platform.pk8和platform.x509.pem
      兩個檔案。
      然後用Android提供的Signapk工具來簽名,signapk的原始碼是
      在"build/tools/signapk"下,
      用法為"java -jar signapk.jar  platform.x509.pem platform.pk8 input.apk output.apk",
      檔案名稱最好使用絕對路徑防止找不到,也可以修改原始碼直接使用。

  4.其他的APPS應用也是按照該方法可以正常運行,

不過這樣產生的程式只有在原始的Android系統或者是自己編譯的系統中才可以用,因為這樣的系統才可以拿到platform.pk8和
platform.x509.pem兩個檔案。要是別家公司做的Android上連安裝都安裝不了。試試原始的Android中的key來簽名,程式在模
擬器上運行OK,不過放到G3上安裝直接提示"Package ... has no signatures that match those in
shared user android.uid.system",這樣也是保護了系統的安全。

最最後還說下,這個android:sharedUserId屬性不只可以把apk放到系統進程中,也可以配置多個APK運行在一個進程中,這樣可以共用資料,應該會很有用的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.