ฉันพบสิ่งนี้เกิดจากรุ่น JDK ของฉัน
ฉันกำลังมีปัญหากับ 'มด' และเป็นเพราะข้อควรระวังนี้ที่กล่าวถึงในเอกสารประกอบ:
http://developer.android.com/guide/publishing/app-signing.html#signapp
ข้อควรระวัง: ตั้งแต่ JDK 7 อัลกอริทึมการเซ็นชื่อเริ่มต้นมีการเปลี่ยนแปลงซึ่งคุณต้องระบุอัลกอริธึมลายเซ็นและไดเจสต์ (-sigalg และ -digestalg) เมื่อคุณลงชื่อ APK
ฉันมี JDK 7 ในบันทึกมดของฉันฉันใช้ -v สำหรับ verbose และมันแสดงให้เห็น
$ 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 ด้วยตนเองและทำการ zipalign มัน แต่มันมีข้อผิดพลาดแตกต่างกันเล็กน้อย:
$ "$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: \ Program Files \ 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