2012-03-22 75 views
9

Như đã thấy từ kết quả của "jarsigner -verify" gói ứng dụng của tôi thực sự đã được ký và tôi vẫn nhận được cài đặt "Không thành công". Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời !Tại sao adb thất bại với lỗi [INSTALL_PARSE_FAILED_NO_CERTIFICATES]?

[email protected]:~/workspace/myapp$ ~/android-sdk-linux_15/platform-tools/adb install target/myapp-aligned.apk 
3857 KB/s (352413 bytes in 0.089s) 
pkg: /data/local/tmp/myapp-aligned.apk 
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 
[email protected]:~/workspace/OVIVO$ jarsigner -verify target/myapp-aligned.apk 
jar verified. 
[email protected]:~/workspace/myapp$ java -version 
java version "1.6.0_23" 
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2) 
OpenJDK Server VM (build 20.0-b11, mixed mode) 
[email protected]:~/workspace/myapp$ 

Tôi đang xây dựng dự án này với maven3, nhật ký từ maven có thể được nhìn thấy dưới đây, không thể tìm thấy bất cứ điều gì trong đó mà nên kết quả trong một bước ký bị hỏng.

[email protected]:~/workspace/myapp$ mvn3 clean install -Pmyapp,monkey 
[INFO] Scanning for projects... 
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.goldengekko.myapp.selfcare:myapp-selfcare:apk:1.11-SNAPSHOT 
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-resources-plugin is missing. @ line 166, column 12 
[WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing. @ line 213, column 12 
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. 
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 
[WARNING] 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building com.goldengekko.myapp.selfcare:myapp-selfcare 1.11-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
Downloading: http://maven.goldengekko.com:8001/nexus/content/groups/public/org/apache/maven/plugins/maven-resources-plugin/maven-metadata.xml 
Downloaded: http://maven........maven-metadata.xml (704 B at 0.5 KB/sec) 
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ myapp-selfcare --- 
[INFO] Deleting /home/carl-emil/workspace/myapp/target 
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:parse-version (parse-version) @ myapp-selfcare --- 
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default) @ myapp-selfcare --- 
[debug] execute contextualize 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 62 resources to res 
[INFO] Copying 1 resource to res 
[INFO] Copying 1 resource to res/values/ 
[INFO] Copying 1 resource to /home/carl-emil/workspace/myapp/target/filtered-manifest 
[INFO] 
[INFO] --- android-maven-plugin:3.1.1:generate-sources (default-generate-sources) @ myapp-selfcare --- 
[DEBUG] Expanding: /home/carl-emil/.m2/repository/com/viewpagerindicator/library/2.2.3/library-2.2.3.apklib into /home/carl-emil/workspace/myapp/target/unpack/apklibs/com.viewpagerindicator_library_apklib_2.2.3 
[DEBUG] expand complete 
[INFO] ANDROID-904-002: Found aidl files: Count = 0 
[INFO] ANDROID-904-002: Found aidl files: Count = 0 
[INFO] ANDROID-904-002: Found aidl files: Count = 0 
[INFO] /home/carl-emil/android-sdk-linux_15/platform-tools/aapt [package, -m, -J, /home/carl-emil/workspace/myapp/target/generated-sources/r, -M, /home/carl-emil/workspace/myapp/target/filtered-manifest/AndroidManifest.xml, -S, /home/carl-emil/workspace/myapp/res, -S, /home/carl-emil/workspace/myapp/target/unpack/apklibs/com.viewpagerindicator_library_apklib_2.2.3/res, --auto-add-overlay, -A, /home/carl-emil/workspace/myapp/assets, -I, /home/carl-emil/android-sdk-linux_15/platforms/android-8/android.jar] 
[INFO] /home/carl-emil/android-sdk-linux_15/platform-tools/aapt [package, -m, -J, /home/carl-emil/workspace/myapp/target/generated-sources/r, --custom-package, com.viewpagerindicator, -M, /home/carl-emil/workspace/myapp/target/filtered-manifest/AndroidManifest.xml, -S, /home/carl-emil/workspace/myapp/res, -S, /home/carl-emil/workspace/myapp/target/unpack/apklibs/com.viewpagerindicator_library_apklib_2.2.3/res, --auto-add-overlay, -A, /home/carl-emil/workspace/myapp/assets, -A, /home/carl-emil/workspace/myapp/target/unpack/apklibs/com.viewpagerindicator_library_apklib_2.2.3/assets, -I, /home/carl-emil/android-sdk-linux_15/platforms/android-8/android.jar] 
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ myapp-selfcare --- 
[debug] execute contextualize 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 62 resources to res 
[INFO] Copying 1 resource to res 
[INFO] Copying 1 resource to res/values/ 
[INFO] Copying 1 resource to /home/carl-emil/workspace/myapp/target/filtered-manifest 
[INFO] skip non existing resourceDirectory /home/carl-emil/workspace/myapp/target/generated-sources/extracted-dependencies/src/main/resources 
[INFO] Copying 0 resource 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ myapp-selfcare --- 
[INFO] Compiling 36 source files to /home/carl-emil/workspace/myapp/target/classes 
[INFO] 
[INFO] --- maven-antrun-plugin:1.6:run (FixManifest) @ myapp-selfcare --- 
[INFO] Executing tasks 

main: 
inotify_add_watch: No such file or directory 
[INFO] Executed tasks 
[INFO] 
[INFO] registerToSubTree : warning, failed to register /home/carl-emil/workspace/myapp/target/filtered-manifest/rep2865681923253179562.tmp :Error watching /home/carl-emil/workspace/myapp/target/filtered-manifest/rep2865681923253179562.tmp : No such file or directory--- android-maven-plugin:3.1.1:proguard (default-proguard) @ myapp-selfcare --- 

inotify_add_watch: No such file or directory 
registerToSubTree : warning, failed to register /home/carl-emil/workspace/myapp/target/filtered-manifest/rep244121430022461645.tmp :Error watching /home/carl-emil/workspace/myapp/target/filtered-manifest/rep244121430022461645.tmp : No such file or directory 
[INFO] 
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ myapp-selfcare --- 
[debug] execute contextualize 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /home/carl-emil/workspace/myapp/src/test/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ myapp-selfcare --- 
[INFO] No sources to compile 
[INFO] 
[INFO] --- maven-surefire-plugin:2.12:test (default-test) @ myapp-selfcare --- 
[INFO] No tests to run. 
[INFO] Surefire report directory: /home/carl-emil/workspace/myapp/target/surefire-reports 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[INFO] 
[INFO] --- android-maven-plugin:3.1.1:dex (default-dex) @ myapp-selfcare --- 
[INFO] /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java [-Xmx1024M, -jar, /home/carl-emil/android-sdk-linux_15/platform-tools/lib/dx.jar, --dex, --output=/home/carl-emil/workspace/myapp/target/classes.dex, /home/carl-emil/.m2/repository/com/viewpagerindicator/library/2.2.3/library-2.2.3.apklib, /home/carl-emil/.m2/repository/android/support.v4/0.0.6/support.v4-0.0.6.jar, /home/carl-emil/.m2/repository/com/googlecode/androidannotations/androidannotations/2.4/androidannotations-2.4-api.jar, /home/carl-emil/workspace/myapp/target/classes, /home/carl-emil/.m2/repository/com/directionalviewpager/library/1.2.0/library-1.2.0.jar, /home/carl-emil/.m2/repository/com/google/code/gson/gson/1.6/gson-1.6.jar, /home/carl-emil/.m2/repository/com/sun/codemodel/codemodel/2.4.1/codemodel-2.4.1.jar] 
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myapp-selfcare --- 
[INFO] Building jar: /home/carl-emil/workspace/myapp/target/myapp-selfcare.jar 
[INFO] 
[INFO] --- android-maven-plugin:3.1.1:apk (default-apk) @ myapp-selfcare --- 
[INFO] Copying dependency assets files to combined assets directory. 
[INFO] Copying local assets files to combined assets directory. 
[INFO] /home/carl-emil/android-sdk-linux_15/platform-tools/aapt [package, -f, -M, /home/carl-emil/workspace/myapp/target/filtered-manifest/AndroidManifest.xml, -S, /home/carl-emil/workspace/myapp/res, -S, /home/carl-emil/workspace/myapp/target/unpack/apklibs/com.viewpagerindicator_library_apklib_2.2.3/res, --auto-add-overlay, -A, /home/carl-emil/workspace/myapp/target/generated-sources/combined-assets/assets, -I, /home/carl-emil/android-sdk-linux_15/platforms/android-8/android.jar, -F, /home/carl-emil/workspace/myapp/target/myapp-selfcare.ap_] 
[INFO] 
[INFO] --- maven-jarsigner-plugin:1.2:sign (signing) @ myapp-selfcare --- 
[INFO] 2 archive(s) processed 
[INFO] 
[INFO] --- android-maven-plugin:3.1.1:zipalign (alignApk) @ myapp-selfcare --- 
[INFO] Running command: /home/carl-emil/android-sdk-linux_15/tools/zipalign 
[INFO] with parameters: [-f, 4, /home/carl-emil/workspace/myapp/target/myapp-selfcare.apk, /home/carl-emil/workspace/myapp/target/myapp-selfcare-aligned.apk] 
[INFO] Attach /home/carl-emil/workspace/myapp/target/myapp-selfcare-aligned.apk to the project 
[INFO] 
[INFO] --- android-maven-plugin:3.1.1:internal-pre-integration-test (default-internal-pre-integration-test) @ myapp-selfcare --- 
[INFO] No InstrumentationRunner found - skipping tests 
[INFO] 
[INFO] --- android-maven-plugin:3.1.1:internal-integration-test (default-internal-integration-test) @ myapp-selfcare --- 
[INFO] No InstrumentationRunner found - skipping tests 
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ myapp-selfcare --- 
JNotifyAdapterLinux: warning, recieved event for an unregisted LinuxWD -1 ignoring... 
JNotifyAdapterLinux: warning, recieved event for an unregisted LinuxWD -1 ignoring... 
JNotifyAdapterLinux: warning, recieved event for an unregisted LinuxWD -1 ignoring... 
[INFO] Installing /home/carl-emil/workspace/myapp/target/myapp-selfcare.apk to /home/carl-emil/.m2/repository/com/goldengekko/myapp/selfcare/myapp-selfcare/1.11-SNAPSHOT/myapp-selfcare-1.11-SNAPSHOT.apk 
[INFO] Installing /home/carl-emil/workspace/myapp/pom.xml to /home/carl-emil/.m2/repository/com/goldengekko/myapp/selfcare/myapp-selfcare/1.11-SNAPSHOT/myapp-selfcare-1.11-SNAPSHOT.pom 
[INFO] Installing /home/carl-emil/workspace/myapp/target/myapp-selfcare.jar to /home/carl-emil/.m2/repository/com/goldengekko/myapp/selfcare/myapp-selfcare/1.11-SNAPSHOT/myapp-selfcare-1.11-SNAPSHOT.jar 
[INFO] Installing /home/carl-emil/workspace/myapp/target/myapp-selfcare-aligned.apk to /home/carl-emil/.m2/repository/com/goldengekko/myapp/selfcare/myapp-selfcare/1.11-SNAPSHOT/myapp-selfcare-1.11-SNAPSHOT-aligned.apk 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 47.769s 
[INFO] Finished at: Fri Mar 23 08:59:37 UTC 2012 
[INFO] Final Memory: 13M/64M 
[INFO] ------------------------------------------------------------------------ 
+0

Có, chỉ dán các dòng quanh phần ký của nhật ký. – erbsman

+0

Bây giờ tôi đã thêm nhật ký đầy đủ từ maven. Bất cứ điều gì khác có liên quan mà tôi nên thêm ở đây để làm cho câu hỏi của tôi rõ ràng hơn? Thanx! – erbsman

+0

Nhật ký Maven trông bình thường với tôi. Bạn có đẩy cài đặt vào trình mô phỏng hoặc thiết bị thực không? – yorkw

Trả lời

16

Tìm thấy! Tôi đã có vấn đề này với 'con kiến' và đó là do CHÚ Ý này được đề cập trong tài liệu hướng dẫn:

http://developer.android.com/guide/publishing/app-signing.html#signapp

Caution: As of JDK 7, the default signing algorithim has changed, requiring you to specify the signature and digest algorithims (-sigalg and -digestalg) when you sign an APK.

Tôi có JDK 7. Tôi không thể nói cho OpenJDK IcedTea của bạn, nhưng nó có lẽ là cùng một vấn đề . Nhật ký Maven của bạn không cung cấp đủ chi tiết. Trong log Ant của tôi, tôi đã sử dụng -v cho verbose và nó cho thấy

$ 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] 

tôi ký JAR bằng tay và được căn chỉnh nén nó, nhưng nó đã đưa ra một lỗi hơi khác nhau:

$ "$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) 

tôi thấy rằng đã trả lời ở đây .

How to deal with INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES without uninstallation

Tôi chỉ cần gỡ cài đặt và sau đó hoạt động!

$ 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) 

Bây giờ tôi chỉ cần sửa đổi build.xml để sử dụng các tùy chọn đó khi ký!

Ok ở đây là: 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}" /> 
+1

Thanx để được giúp đỡ! – erbsman

1

tôi xây dựng các ứng dụng sử dụng debug [microsoft.net] cấu hình trong MonoDevelop. Bây giờ nó hoạt động tốt.

2

Như đã đề cập here sử dụng tại 1.8.3 Ant nhất và đặt đoạn mã này để tập kiến ​​của bạn:

<presetdef name="signjar"> 
    <signjar sigalg="MD5withRSA" digestalg="SHA1" /> 
</presetdef> 
0

Trong trường hợp của tôi, tôi có thể xây dựng và chạy phát hành xây dựng, nhưng đã nhận lỗi INSTALL_PARSE_FAILED_NO_CERTIFICATES khi cố gắng làm một bản dựng gỡ lỗi.

Giải pháp là xóa tệp debug.keystore của tôi và để cho hệ thống xây dựng tạo lại.

0

Đối với những người khác gặp sự cố tương tự - Tôi đã gặp lỗi tương tự, nhưng dường như không phải là thuật toán ký. Tôi chỉ cần sử dụng jarsigner từ Java 1.6. Các thuật toán ký tôi đã sử dụng có vẻ giống nhau cho cả hai: dsaWithSHA1, nhưng 1.6 đã làm việc và 1.7 thì không.

Các vấn đề liên quan