PhoneGap/Cordova Android应用签名发布注意事项

今天终于要发布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





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

offbye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值