Sử dụng Ant, tôi đang cố gắng tạo ứng dụng Android ở chế độ phát hành để phân phối. Vấn đề của tôi là tại quá trình ký kết. Tôi đã tạo một kho khóa và bí danh qua Eclipse bằng cách sử dụng thuật sĩ Xuất ứng dụng Android và ứng dụng được ký một cách chính xác nếu xuất nó qua Eclipse. Khi tôi cố gắng để hoàn thành quá trình tương tự qua Ant tôi tham khảo keystore và bí danh của tôi trong tệp build.properties tôi:Ký Android với Ant
key.store=C:\\Users\\a512091\\.android\\release.keystore
key.alias=application
key.store.password=android
key.alias.password=android
Quá trình xây dựng thành công và tôi nhận được một tập tin ứng dụng-release.apk. Tôi đã thực hiện APK này với jarsigner và tất cả các tệp đều có thẻ "sm". Đây là đuôi của đầu ra:
jar verified.
Warning:
This jar contains entries whose certificate chain is not validated.
Khi tôi cố gắng để cài đặt APK này vào một giả lập hoặc thiết bị tôi nhận được như sau:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
Logcat cho thấy vấn đề ký kết trong hồ sơ CSS của tôi và tài sản hình ảnh :
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!
Thuộc tính 'verbose' sẽ được tính đến như thế nào? Bây giờ cờ tiết luôn được đặt. –
"tiết" chỉ cần thay thế dễ dàng mục tiêu 'signjar' ban đầu. – FeelGood
Bạn có thể cung cấp thêm thông tin cho giải pháp 1.8.3+ của mình không. Các biến đó là gì? Tôi lấy giá trị từ đâu? – Guy