今天最终要公布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

PhoneGap/Cordova Android应用签名公布注意事项的更多相关文章

  1. 在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序

    在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序 本贴首发于: http://xuekaiyuan.com/forum.php?mod=vie ...

  2. [转] Android PhoneGap Cordova 体系结构

    说明: 本文档只针对Cordova(PhoneGap)的Android端,基于Cordova2.1.0版本. 一.总体结构 Cordova的目标是用HTML,JS,来完成手机客户端的开发,并且是只开发 ...

  3. 在 Cordova/Phonegap for Android 中包含中文文件名的页面

    在 Cordova/Phonegap for Android 中包含中文文件名的页面 本贴首发于: http://xuekaiyuan.com/forum.php?mod=viewthread& ...

  4. phonegap(cordova) 自己定义插件代码篇(六)----android ,iOS 微信支付工具整合

    还是那句话,在使用插件代码篇的时候,请先了解插件机制(如整合原生插件先阅读原生插件文档.非常重要.非常重要!非常重要!),如未了解,请先阅读入门篇.这里就专贴关键代码 必须先把官方sdk 依照要求一步 ...

  5. cordova打包之android应用签名

    原文:cordova打包之android应用签名 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mate_ge/article/details/78 ...

  6. phonegap(cordova) 自己定义插件代码篇(五)----android ,iOS 集成微信登陆

    统一登陆还是非常有必要的,安全,放心.代码 /*cordov 微信自己定义插件*/ (function (cordova) { var define = cordova.define; define( ...

  7. 使用 Eclipse PhoneGap 构建 Android 应用程序入门

    Eclipse 是一种支持多种技术的开源集成开发环境 (IDE),但本文重点介绍 Java 支持,这也是 Android 应用程序的“母语”.Android 是 Google 发布的开源移动操作系统. ...

  8. Android APK 签名 (转发)

    Cordova 3.5 为 Android APK 签名,生成可发布的 APK 程序文件  任侠  2014-06-07 00:04  移动开发  抢沙发  16,288 views  目录 [隐藏] ...

  9. Android应用签名

    http://www.cnblogs.com/ghj1976/archive/2011/07/18/2109381.html 为了要签名? 开发Android的人这么多,完全有可能大家都把类名,包名起 ...

随机推荐

  1. Linux安装PHP MongoDB扩展

    本文将讲述一下本人安装MongoDB扩展的过程,大家可以略作参考 安装环境 Linux环境:CentOS 6.5 Apache版本:2.4 PHP版本:5.4.3 MongoDB版本:2.6.5 一. ...

  2. POJ 1151 线段树+扫描线

    题意:求矩形面积的并 思路: 注意是[l,mid][mid,r] 这是真正的线段了 就当扫描线模板使吧~ //By SiriusRen #include <cmath> #include ...

  3. AngularJs轻松入门(七)多视图切换

    在AngularJs应用中,我们可以將html碎片写在一个单独的文件中,然后在其他页面中將该段碎片加载进来.如果有多个碎片文件,我们还可以在控制器中根据用户的操作动态的加载不同的碎片,从而达到切换视图 ...

  4. Android框架-Volley(四)

    经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚.因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地 ...

  5. 关于node的聊天室错误

    Deprecationwarning:process,EventEmitter is deprecated use require ('events')instead 关于node的聊天室错误 > ...

  6. c# static 常量

    1 关键字 static 修饰 类  字段 属性 方法 ,标记static的就不用创建类的实例调用了,直接通过类名点出来 2 用于变量前,表示每次重新使用该变量所在的方法,类或者自定义的类时,变量的值 ...

  7. Tomcat IO阻塞异常

    tomcat的maxThreads.acceptCount(最大线程数.最大排队数) tomcat 的Connector配置如下 <Connector port="8080" ...

  8. appium 模拟实现物理按键点击

    appium自动化测试中,当确认,搜索,返回等按键通过定位点击不好实现的时候,可以借助物理按键来实现.appium支持以下物理按键模拟: 电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ ...

  9. 【Loadrunner】Vugen录制脚本为空的解决办法

    1. ie -> 工具 -> Internet选项 - 高级 - 勾除“启动第三方浏览器扩展选项”,然后重启电脑 2. 还有一种可能,就是机器上安装了多个浏览器,从而导致出现问题,解决方法 ...

  10. 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例

    最近,项目中遇到了数据库连接不够的问题. 异常信息com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data ...