Ho scoperto che questo è stato causato dalla mia versione di JDK.
Stavo avendo questo problema con 'formica' ed era dovuto a questo ATTENZIONE menzionato nella documentazione:
http://developer.android.com/guide/publishing/app-signing.html#signapp
Attenzione: a partire da JDK 7, l'algoritmo di firma predefinito è cambiato, richiedendo di specificare gli algoritmi di firma e digest (-sigalg e -digestalg) quando si firma un APK.
Ho JDK 7. Nel mio registro Ant, ho usato -v per verbose e ha mostrato
$ ant -Dadb.device.arg=-d -v release install
[signjar] Executing 'C:\Program Files\Java\jdk1.7.0_03\bin\jarsigner.exe' with arguments:
[signjar] '-keystore'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\release.keystore'
[signjar] '-signedjar'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unaligned.apk'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unsigned.apk'
[signjar] 'mykey'
[exec] pkg: /data/local/tmp/PairFinder-release.apk
[exec] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
Ho firmato manualmente il JAR e lo ho zipallineato, ma ha dato un errore leggermente diverso:
$ "$JAVA_HOME"/bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore release.keystore -signedjar bin/PairFinder-release-unaligned.apk bin/PairFinder-release-unsigned.apk mykey
$ zipalign -v -f 4 bin/PairFinder-release-unaligned.apk bin/PairFinder-release.apk
$ adb -d install -r bin/PairFinder-release.apk
pkg: /data/local/tmp/PairFinder-release.apk
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
641 KB/s (52620 bytes in 0.080s)
Ho trovato che ha risposto qui.
Come gestire INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES senza disinstallazione
Ho solo bisogno di disinstallarlo e poi ha funzionato!
$ adb -d uninstall com.kizbit.pairfinder
Success
$ adb -d install -r bin/PairFinder-release.apk
pkg: /data/local/tmp/PairFinder-release.apk
Success
641 KB/s (52620 bytes in 0.080s)
Ora ho solo bisogno di modificare build.xml per usare quelle opzioni al momento della firma!
Ok eccolo qui: C: \ Programmi \ Java \ android-sdk \ tools \ ant \ build.xml
<signjar
sigalg="MD5withRSA"
digestalg="SHA1"
jar="${out.packaged.file}"
signedjar="${out.unaligned.file}"
keystore="${key.store}"
storepass="${key.store.password}"
alias="${key.alias}"
keypass="${key.alias.password}"
verbose="${verbose}" />
INSTALL_PARSE_FAILED_NO_CERTIFICATES
è un errore-103
che puoi ottenere / vedere tramiteadb log
( src ) ad es.D/PackageInstaller(21320): Installation error code: -103