INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES on adb install

醉酒当歌 提交于 2020-01-10 03:28:07

问题


The same Android project is built in debug mode, sometimes with Eclipse, sometimes with ant (on build machine).

If I first install the ant build, and then try to start Eclipse debugging, the Eclipse console displays

[2012-03-20 13:32:26 - myproject] Re-installation failed due to different application signatures. [2012-03-20 13:32:26 - myproject] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2012-03-20 13:32:26 - myproject] Please execute 'adb uninstall com.myproject' in a shell. [2012-03-20 13:32:26 - myproject] Launch canceled!

If I do this the other way around, i.e., debug with Eclipse (includes installing the apk) and then try to install the ant build from command line, I get:

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

What is wrong with my certificates/signing?


回答1:


For me the problem was I had the same application already installed with another key. Uninstalling the old application solved the problem, as noted here:

https://stackoverflow.com/a/10280878




回答2:


The old installed .apk has different certificate than the new going to be installed or it is already installed in your device with a different key. This means that your application was previously installed from a different machine that gave it different credentials.

So the solution is:

uninstall the existing .apk

and then

re-install the new .apk




回答3:


The problem is that the apk files (during Eclipse and ant build) have been signed with different certificates. To make the signatures consistent between builds that have been built on different machines, place the debug keystore in version control:

  • Use keytool-importkeypair to make the key/certificate pair: https://stackoverflow.com/a/4257367/1097104
  • Place the created keystore file in version control
  • Set Eclipse to use the file: Windows > Preferences > Android > Build
  • Set ant properties to use the file: https://stackoverflow.com/a/9019925/1097104

This is handy if you tend to cross-install builds from your own machine and build machine.




回答4:


If your building system is gradle, just use the follwong command to uninstall it in Windows:

.\gradlew.bat uninstallDebug

or in Linux:

./gradlew uninstallDebug

And then:

./gradlew install

This is a certification check for installation and uninstallation on the same package in Android. If you are using two different building PC (computer) connected with the same phone, you'll get this error when you connect your phone with those different PCs. The best choice is binding one PC with one physical phone.




回答5:


Open Eclipse's Preferences. Open Android section in left list. Select "Build" area under Android Beside "Custom debug store" navigate to the keystore under your Android SDK instalation, NOT the one Eclipse has selected under your home directory.

Now the android ant build and eclipse are using the same keystore.




回答6:


In IntelliJ although you can select a debug keystore for debug signing your applications you can not enter keystore password or keypassword. You could export your release certificates and import them to your debug keystore and change keystore and key passwords to "android". I have prepared step by step instructions for it: http://www.denizoguz.com/2013/01/12/failure-install_parse_failed_inconsistent_certificates/




回答7:


Other solution Incremente your version code on build.gralde file of your application

 defaultConfig {
        ...
        versionCode 1
        ...
  }

 defaultConfig {
        ...
        versionCode 2
        ...
  }

Sync Now

Build clean Project

Run your application



来源:https://stackoverflow.com/questions/9786341/install-parse-failed-inconsistent-certificates-on-adb-install

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!