使用Ant,我試圖在發佈模式下構建Android應用程序以進行分發。我的問題是在簽名過程中。我使用導出Android應用程序嚮導通過Eclipse創建了一個密鑰倉庫和別名,如果通過Eclipse導出應用程序,它的簽名是正確的。當我嘗試完成通過Ant同一過程中,我引用我的密鑰庫和別名在我的build.properties文件:使用Ant與Android簽署
key.store=C:\\Users\\a512091\\.android\\release.keystore
key.alias=application
key.store.password=android
key.alias.password=android
構建過程是成功的,我得到一個應用程序release.apk文件。我非常喜歡這個APK與jarsigner,所有文件都有「sm」標籤。這是輸出的尾巴:
jar verified.
Warning:
This jar contains entries whose certificate chain is not validated.
當我嘗試這個APK安裝到仿真器或設備,我得到以下幾點:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
logcat的顯示在我的CSS文件和圖像資源簽約問題:
11-07 11:06:20.060: WARN/PackageParser(58): Exception reading assets/www/css/base.css in /data/app/vmdl48898.tmp
11-07 11:06:20.060: WARN/PackageParser(58): java.lang.SecurityException: META-INF/XXXXX.SF has invalid digest for assets/www/res/droidhdpi/favorite_off.png in /data/app/vmdl48898.tmp
11-07 11:06:20.060: WARN/PackageParser(58): at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:369)
11-07 11:06:20.060: WARN/PackageParser(58): at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:272)
11-07 11:06:20.060: WARN/PackageParser(58): at java.util.jar.JarFile.getInputStream(JarFile.java:392)
11-07 11:06:20.060: WARN/PackageParser(58): at android.content.pm.PackageParser.loadCertificates(PackageParser.java:337)
11-07 11:06:20.060: WARN/PackageParser(58): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:508)
11-07 11:06:20.060: WARN/PackageParser(58): at com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:5885)
11-07 11:06:20.060: WARN/PackageParser(58): at com.android.server.PackageManagerService.access$2100(PackageManagerService.java:134)
11-07 11:06:20.060: WARN/PackageParser(58): at com.android.server.PackageManagerService$5.run(PackageManagerService.java:4743)
11-07 11:06:20.060: WARN/PackageParser(58): at android.os.Handler.handleCallback(Handler.java:587)
11-07 11:06:20.060: WARN/PackageParser(58): at android.os.Handler.dispatchMessage(Handler.java:92)
11-07 11:06:20.060: WARN/PackageParser(58): at android.os.Looper.loop(Looper.java:123)
11-07 11:06:20.060: WARN/PackageParser(58): at android.os.HandlerThread.run(HandlerThread.java:60)
11-07 11:06:20.069: ERROR/PackageParser(58): Package com.xxxxx.xxxxx has no certificates at entry assets/www/css/base.css; ignoring!
應該如何考慮'verbose'屬性?現在,詳細標誌總是被設置。 –
「詳細」只需要輕鬆替換原始的'signjar'目標。 – FeelGood
您可以提供1.8.3+解決方案的更多信息。這些變量是什麼?我從哪裏得到他們的價值? – Guy