PhoneGap/Cordova Android應用簽名發布注意事項

來源:互聯網
上載者:User

標籤:cordova   phonegap   發布   proguard   

今天終於要發布Android HybirdApp了,安裝以前做原生應用的流程發布簽名Apk,沒想到馬上遇到了幾個問題,現在把它們的解決辦法整理下來。


export signed Apk 遇到下面錯誤,這個問題是多次讀取inputStream導致的,貌似和eclise的自動編譯有關,解決辦法是關掉相關工程的自動編譯。

Export Signed APK 前先將 Eclipse 的 Project -> Build Automatically關閉,第一個坑解決!

[2014-07-25 10:50:58 - SalesApp] Proguard returned with error code 1. See console[2014-07-25 10:50:58 - SalesApp] java.io.IOException: Can't read [/Users/zhangxitao/work/salesapp/platforms/android/CordovaLib/bin/salesapp-cordovalib.jar] (Can't process class [com/squareup/okhttp/internal/spdy/SpdyConnection$Builder.class] (Unexpected end of ZLIB input stream))[2014-07-25 10:50:58 - SalesApp] at proguard.InputReader.readInput(InputReader.java:232)[2014-07-25 10:50:58 - SalesApp] at proguard.InputReader.readInput(InputReader.java:202)[2014-07-25 10:50:58 - SalesApp] at proguard.InputReader.readInput(InputReader.java:180)[2014-07-25 10:50:58 - SalesApp] at proguard.InputReader.execute(InputReader.java:78)[2014-07-25 10:50:58 - SalesApp] at proguard.ProGuard.readInput(ProGuard.java:196)[2014-07-25 10:50:58 - SalesApp] at proguard.ProGuard.execute(ProGuard.java:78)[2014-07-25 10:50:58 - SalesApp] at proguard.ProGuard.main(ProGuard.java:483)[2014-07-25 10:50:58 - SalesApp] Caused by: java.io.IOException: Can't process class [com/squareup/okhttp/internal/spdy/SpdyConnection$Builder.class] (Unexpected end of ZLIB input stream)[2014-07-25 10:50:58 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:112)[2014-07-25 10:50:58 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:50:58 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:50:58 - SalesApp] at proguard.io.JarReader.read(JarReader.java:65)[2014-07-25 10:50:58 - SalesApp] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)[2014-07-25 10:50:58 - SalesApp] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)[2014-07-25 10:50:58 - SalesApp] at proguard.InputReader.readInput(InputReader.java:228)[2014-07-25 10:50:58 - SalesApp] ... 6 more[2014-07-25 10:50:58 - SalesApp] Caused by: java.lang.RuntimeException: Unexpected end of ZLIB input stream[2014-07-25 10:50:58 - SalesApp] at proguard.classfile.io.RuntimeDataInput.readInt(RuntimeDataInput.java:136)[2014-07-25 10:50:58 - SalesApp] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:77)[2014-07-25 10:50:58 - SalesApp] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)[2014-07-25 10:50:58 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:91)[2014-07-25 10:50:58 - SalesApp] ... 12 more[2014-07-25 10:51:06 - SalesApp] Proguard returned with error code 1. See console[2014-07-25 10:51:06 - SalesApp] java.io.IOException: Can't read [/Users/zhangxitao/work/salesapp/platforms/android/CordovaLib/bin/salesapp-cordovalib.jar] (Can't process class [com/squareup/okhttp/internal/http/HttpDate.class] (Unexpected end of ZLIB input stream))[2014-07-25 10:51:06 - SalesApp] at proguard.InputReader.readInput(InputReader.java:232)[2014-07-25 10:51:06 - SalesApp] at proguard.InputReader.readInput(InputReader.java:202)[2014-07-25 10:51:06 - SalesApp] at proguard.InputReader.readInput(InputReader.java:180)[2014-07-25 10:51:06 - SalesApp] at proguard.InputReader.execute(InputReader.java:78)[2014-07-25 10:51:06 - SalesApp] at proguard.ProGuard.readInput(ProGuard.java:196)[2014-07-25 10:51:06 - SalesApp] at proguard.ProGuard.execute(ProGuard.java:78)[2014-07-25 10:51:06 - SalesApp] at proguard.ProGuard.main(ProGuard.java:483)[2014-07-25 10:51:06 - SalesApp] Caused by: java.io.IOException: Can't process class [com/squareup/okhttp/internal/http/HttpDate.class] (Unexpected end of ZLIB input stream)[2014-07-25 10:51:06 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:112)[2014-07-25 10:51:06 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:51:06 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:51:06 - SalesApp] at proguard.io.JarReader.read(JarReader.java:65)[2014-07-25 10:51:06 - SalesApp] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)[2014-07-25 10:51:06 - SalesApp] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)[2014-07-25 10:51:06 - SalesApp] at proguard.InputReader.readInput(InputReader.java:228)[2014-07-25 10:51:06 - SalesApp] ... 6 more[2014-07-25 10:51:06 - SalesApp] Caused by: java.lang.RuntimeException: Unexpected end of ZLIB input stream[2014-07-25 10:51:06 - SalesApp] at proguard.classfile.io.RuntimeDataInput.readInt(RuntimeDataInput.java:136)[2014-07-25 10:51:06 - SalesApp] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:77)[2014-07-25 10:51:06 - SalesApp] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)[2014-07-25 10:51:06 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:91)[2014-07-25 10:51:06 - SalesApp] ... 12 more[2014-07-25 10:51:20 - SalesApp] Proguard returned with error code 1. See console[2014-07-25 10:51:20 - SalesApp] java.io.IOException: Can't read [/Users/zhangxitao/work/salesapp/platforms/android/CordovaLib/bin/salesapp-cordovalib.jar] (Can't process class [com/squareup/okhttp/internal/http/HttpTransport.class] (Unexpected end of ZLIB input stream))[2014-07-25 10:51:20 - SalesApp] at proguard.InputReader.readInput(InputReader.java:232)[2014-07-25 10:51:20 - SalesApp] at proguard.InputReader.readInput(InputReader.java:202)[2014-07-25 10:51:20 - SalesApp] at proguard.InputReader.readInput(InputReader.java:180)[2014-07-25 10:51:20 - SalesApp] at proguard.InputReader.execute(InputReader.java:78)[2014-07-25 10:51:20 - SalesApp] at proguard.ProGuard.readInput(ProGuard.java:196)[2014-07-25 10:51:20 - SalesApp] at proguard.ProGuard.execute(ProGuard.java:78)[2014-07-25 10:51:20 - SalesApp] at proguard.ProGuard.main(ProGuard.java:483)[2014-07-25 10:51:20 - SalesApp] Caused by: java.io.IOException: Can't process class [com/squareup/okhttp/internal/http/HttpTransport.class] (Unexpected end of ZLIB input stream)[2014-07-25 10:51:20 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:112)[2014-07-25 10:51:20 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:51:20 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:51:20 - SalesApp] at proguard.io.JarReader.read(JarReader.java:65)[2014-07-25 10:51:20 - SalesApp] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)[2014-07-25 10:51:20 - SalesApp] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)[2014-07-25 10:51:20 - SalesApp] at proguard.InputReader.readInput(InputReader.java:228)[2014-07-25 10:51:20 - SalesApp] ... 6 more[2014-07-25 10:51:20 - SalesApp] Caused by: java.lang.RuntimeException: Unexpected end of ZLIB input stream[2014-07-25 10:51:20 - SalesApp] at proguard.classfile.io.RuntimeDataInput.readInt(RuntimeDataInput.java:136)[2014-07-25 10:51:20 - SalesApp] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:77)[2014-07-25 10:51:20 - SalesApp] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)[2014-07-25 10:51:20 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:91)[2014-07-25 10:51:20 - SalesApp] ... 12 more[2014-07-25 10:54:53 - SalesApp] Proguard returned with error code 1. See console[2014-07-25 10:54:53 - SalesApp] java.io.IOException: Can't read [/Users/zhangxitao/work/salesapp/platforms/android/CordovaLib/bin/salesapp-cordovalib.jar] (Can't process class [com/squareup/okhttp/internal/http/HttpEngine.class] (Unexpected end of ZLIB input stream))[2014-07-25 10:54:53 - SalesApp] at proguard.InputReader.readInput(InputReader.java:232)[2014-07-25 10:54:53 - SalesApp] at proguard.InputReader.readInput(InputReader.java:202)[2014-07-25 10:54:53 - SalesApp] at proguard.InputReader.readInput(InputReader.java:180)[2014-07-25 10:54:53 - SalesApp] at proguard.InputReader.execute(InputReader.java:78)[2014-07-25 10:54:53 - SalesApp] at proguard.ProGuard.readInput(ProGuard.java:196)[2014-07-25 10:54:53 - SalesApp] at proguard.ProGuard.execute(ProGuard.java:78)[2014-07-25 10:54:53 - SalesApp] at proguard.ProGuard.main(ProGuard.java:483)[2014-07-25 10:54:53 - SalesApp] Caused by: java.io.IOException: Can't process class [com/squareup/okhttp/internal/http/HttpEngine.class] (Unexpected end of ZLIB input stream)[2014-07-25 10:54:53 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:112)[2014-07-25 10:54:53 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:54:53 - SalesApp] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2014-07-25 10:54:53 - SalesApp] at proguard.io.JarReader.read(JarReader.java:65)[2014-07-25 10:54:53 - SalesApp] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)[2014-07-25 10:54:53 - SalesApp] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)[2014-07-25 10:54:53 - SalesApp] at proguard.InputReader.readInput(InputReader.java:228)[2014-07-25 10:54:53 - SalesApp] ... 6 more[2014-07-25 10:54:53 - SalesApp] Caused by: java.lang.RuntimeException: Unexpected end of ZLIB input stream[2014-07-25 10:54:53 - SalesApp] at proguard.classfile.io.RuntimeDataInput.readInt(RuntimeDataInput.java:136)[2014-07-25 10:54:53 - SalesApp] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:77)[2014-07-25 10:54:53 - SalesApp] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)[2014-07-25 10:54:53 - SalesApp] at proguard.io.ClassReader.read(ClassReader.java:91)[2014-07-25 10:54:53 - SalesApp] ... 12 more


Proguard 會混淆cordova及其外掛程式的java代碼,導致apk運行時報 cordova error initial class,解決辦法是在proguard-project.txt 加入下面的內容,不混淆cordova及其外掛程式

cordova 3.0以上版本加

-keep class org.apache.cordova.** { *; }-keep public class * extends org.apache.cordova.CordovaPlugin





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.