zoukankan      html  css  js  c++  java
  • PhoneGap/Cordova Android应用签名公布注意事项

    今天最终要公布Android HybirdApp了,安装曾经做原生应用的流程公布签名Apk,没想到立即遇到了几个问题。如今把它们的解决的方法整理下来。


    export signed Apk 遇到以下错误,这个问题是多次读取inputStream导致的,貌似和eclise的自己主动编译有关,解决的方法是关掉相关project的自己主动编译。

    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
    





  • 相关阅读:
    C#2.0技术探讨(1):匿名方法
    C#测试类的嵌套
    介绍几款博客发布工具,绝对好用
    HttpModule,对ASP.NET的事件处理进行过滤,干预
    C#中,控制台模式可以使用定时器吗?
    const常量和static静态只读变量有何区别
    C#设计模式(2):工厂模式
    ASP.NET 的数据绑定语法
    DataAdapter数据集DataSet和数据库的同步(2):使用DataAdapter来更新数据集
    TCP编程(5):服务器端 TcpListener
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6956461.html
Copyright © 2011-2022 走看看