平板真機除錯,一直都是安裝debug版本除錯,之前都正常,今天重新安裝的時候出現下面的問題.求指教.

uj5u.com熱心網友回復:
只有我看不到你的問題是啥嗎?uj5u.com熱心網友回復:
把之前的debug app卸載了再裝。uj5u.com熱心網友回復:
Instant Run 勾選去掉,不使用Instant Run就OK了uj5u.com熱心網友回復:
Instant Run 勾選去掉也沒用 還是報同樣的錯誤。另外把之前的debug app卸載了再裝。這個之前的debug版本已經卸載了,現在的問題就是卸載不干凈所引起的。網上有的說重啟電腦這個方法沒用,我試過了。uj5u.com熱心網友回復:
暫時解決了:我的AndroidManifest.xml檔案的manifest節點下有一行代碼android:sharedUserId="android.uid.system",刪掉后就可以安裝了。關于這行代碼有什么作用,參考其他博客上的話:
。至于為什么說是暫時解決了:是因為我的程式能重新安裝了,但是有些問題還沒弄清楚:比如百度Failure [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運行在一個行程中,這樣可以共享資料,應該會很有用的。
這些我還沒完全弄透。還在研究中。
uj5u.com熱心網友回復:
這個簡單,把版本號加高一個就好了uj5u.com熱心網友回復:
把-r 改成 -t轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/9214.html
標籤:Android
