Ich habe die Anweisungen hier und an anderer Stelle beim Erstellen einer signierten JAR-Datei befolgt und ich erhalte immer noch INSTALL_PARSE_FAILED_NO_CERTIFICATES, wenn ich versuche, die signierte .apk auf meinem LG-D415 zu installieren. Wie bereits erwähnt, die Signieralgorithmus scheint mit Java besser zu arbeiten 6. So deinstallierte ich alle Versionen von Java andere als das und stellte sicher, dass keytool und jarsigner Java verwendet wurden 6.INSTALL_PARSE_FAILED_NO_CERTIFICATES von adb install; Verwenden von Java 6, Android 5.0.2
keytool -genkey -v -keystore debug.keystore -alias TabletClient -keyalg RSA -keysize 2048 -validity 20000
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore debug.keystore Release\TabletClient.apk TabletClient
zipalign -v 4 Release\TabletClient.apk Release\TabletClientZ.apk
adb install Release\TabletClientZ.apk
adb logcat zeigt:
W/PackageManager( 957): android.content.pm.PackageParser$PackageParserException: Failed to collect certificates from /data/app/vmdl272628750.tmp/base.apk
W/PackageManager( 957): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:1108)
W/PackageManager( 957): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:1035)
W/PackageManager( 957): at com.android.server.pm.PackageManagerService.installPackageLI(PackageManagerService.java:11848)
W/PackageManager( 957): at com.android.server.pm.PackageManagerService.access$2500(PackageManagerService.java:273)
W/PackageManager( 957): at com.android.server.pm.PackageManagerService$7.run(PackageManagerService.java:9770)
W/PackageManager( 957): at android.os.Handler.handleCallback(Handler.java:739)
W/PackageManager( 957): at android.os.Handler.dispatchMessage(Handler.java:95)
W/PackageManager( 957): at android.os.Looper.loop(Looper.java:135)
W/PackageManager( 957): at android.os.HandlerThread.run(HandlerThread.java:61)
W/PackageManager( 957): at com.android.server.ServiceThread.run(ServiceThread.java:46)
W/PackageManager( 957): Caused by: java.lang.SecurityException: Can not recognize a critical extension
W/PackageManager( 957): at org.apache.harmony.security.utils.JarUtils.verifySignature(JarUtils.java:120)
W/PackageManager( 957): at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:346)
W/PackageManager( 957): at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:320)
W/PackageManager( 957): at java.util.jar.StrictJarFile.<init>(StrictJarFile.java:68)
W/PackageManager( 957): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:1050)
Irgendwelche Ideen? Jede Hilfe wird geschätzt.
Könnten Sie den adt-Befehl einfügen, der das Problem behoben hat? – Tormod
Es war mir egal, meine Lösung war, _signingConfig signingConfigs.release_ zu meinem Build-Release-Buildtyp hinzuzufügen. – Tormod