Я виявив, що це було викликано моєю версією JDK.
У мене виникли проблеми з «мурашкою», і це було пов’язано з цим ОБЕРЕЖНО, згаданим у документації:
http://developer.android.com/guide/publishing/app-signing.html#signapp
Попередження: Станом на JDK 7 алгоритм підписання за замовчуванням змінився, вимагаючи вказати алгоритми підпису та дайвінгу (-sigalg та -digestalg) під час підписання APK.
У мене JDK 7. У моєму журналі-мурашках я використовував -v для багатослівної роботи, і це показало
$ 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]
Я підписав JAR вручну і змістив його, але це дало дещо іншу помилку:
$ "$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)
Я знайшов, що тут відповів.
Як боротися з INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES без видалення
Мені потрібно було лише його видалити, і тоді воно спрацювало!
$ 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)
Тепер мені потрібно лише змінити build.xml, щоб використовувати ці параметри при підписанні!
Добре ось це: C: \ Програмні файли \ 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
це помилка,-103
яку ви можете отримати / побачити черезadb log
( src ), наприклад.D/PackageInstaller(21320): Installation error code: -103