2012-03-20 213 views
22

相同的Android項目以調試模式構建,有時使用Eclipse,有時使用ant(構建機器)。INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES關於adb安裝

如果我先安裝Ant構建,然後再嘗試啓動Eclipse調試,在Eclipse控制檯顯示

[2012-03-20 13點32分26秒 - 的myproject]重新安裝失敗,由於不同的應用程序簽名。 [2012-03-20 13:32:26 - myproject]您必須執行應用程序的完全卸載。警告:這將刪除應用程序數據!
[2012-03-20 13:32:26 - myproject]請在shell中執行'adb uninstall com.myproject'。 [2012-03-20 13:32:26 - myproject]發佈取消!

如果我這樣做的其他方式,即與Eclipse(包括安裝APK),然後調試嘗試從命令行安裝Ant構建,我得到:

失敗[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES ]

我的證書/簽名有什麼問題?

+0

可能重複[如何處理INSTALL \ _PARSE \ _FAILED \ _INCONSISTENT \ _CERTIFICATES無unins tallation](http://stackoverflow.com/questions/3185444/how-to-deal-with-install-parse-failed-inconsistent-certificates-without-uninstal) – ForeverLearning 2015-08-05 20:57:34

回答

15

問題是apk文件(在Eclipse和ant版本中)已經用不同的證書簽名。爲了使簽名一致之間建立已建立在不同的機器上,將調試密鑰存儲在版本控制:

如果你傾向於從你自己的機器上交叉安裝構建和構建機器,這很方便。

+0

我有同樣的問題,但它是在同一臺機器上,項目和目錄。就好像ant和eclipse沒有使用相同的(調試)keystore ...以前一樣工作,但我最近更新了Android Tools 20。 – 2012-07-18 18:41:17

1

打開Eclipse的首選項。 在左側列表中打開Android部分。 選擇Android 下的「Build」區域在「Custom debug store」旁邊導航到Android SDK安裝下的密鑰存儲區,而不是Eclipse在主目錄下選擇的密鑰存儲區。

現在android ant build和eclipse正在使用相同的keystore。

46

對我來說,問題是我有相同的應用程序已經安裝了另一個鍵。卸載舊的應用程序解決了這個問題,因爲在這裏指出:

https://stackoverflow.com/a/10280878

26

舊的安裝apk文件有不同的證書比新將被安裝或已經安裝在設備中使用不同的密鑰。這意味着您的應用程序以前是從不同的機器安裝的,併爲其提供了不同的憑據。

因此,解決辦法是:

uninstall the existing .apk

然後

re-install the new .apk

+0

謝謝你的工作! – 2017-09-02 14:18:41

0

如果您的建築系統是gradle這個,只需使用follwong命令卸載它在Windows中:

.\gradlew.bat uninstallDebug 

或者在Linux中:

./gradlew uninstallDebug 

然後:

./gradlew install 

這是安裝和卸載放在同一個包中的Android認證檢查。如果您使用與同一部手機連接的兩臺不同的建築物PC(計算機),則當您將手機與這些不同的PC連接時,會出現此錯誤。最好的選擇是將一臺PC與一臺物理電話綁定。

+0

它與這個問題有什麼關係? – techraf 2016-03-28 06:02:21

0

其他解決方案 Incremente您的應用程序的build.gralde文件的版本代碼

defaultConfig { 
     ... 
     versionCode 1 
     ... 
    } 

defaultConfig { 
     ... 
     versionCode 2 
     ... 
    } 

立即同步 enter image description here

建造潔淨工程

運行應用程序的