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?
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:
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
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.
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.
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.
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/
来源:https://stackoverflow.com/questions/9786341/install-parse-failed-inconsistent-certificates-on-adb-install