android proguard导致apk崩溃

android proguard导致apk崩溃,android,proguard,Android,Proguard,如果我在project.properties中注释掉“proguard.config=${sdk.dir}/tools/proguard…”禁用了proguard,那么我的应用程序在调试和导出到已签名的apk时也可以正常工作 然而,如果我取消注释该行,我会收到一堆警告,proguard将不会创建apk。我可以通过在proguard-project.txt中添加以下行来抑制警告 -dontwarn com.sun.mail.imap.protocol.** -dontwarn org.apache

如果我在project.properties中注释掉“proguard.config=${sdk.dir}/tools/proguard…”禁用了proguard,那么我的应用程序在调试和导出到已签名的apk时也可以正常工作

然而,如果我取消注释该行,我会收到一堆警告,proguard将不会创建apk。我可以通过在proguard-project.txt中添加以下行来抑制警告

-dontwarn com.sun.mail.imap.protocol.**
-dontwarn org.apache.harmony.awt.**
-dontwarn javax.activation.**
apk将被创建,但不会在手机中执行。有趣的是,如果我删除这些行并使用“-dontshrink”,我将继续得到这些错误。我本以为这样可以解决这个问题

我发现在我的配置中可能缺少了一些-keep行,但这些行是什么并不明显。有人能提供线索吗

默认的proguard.cfg文件试图覆盖一般情况,但是 可能会遇到异常,例如ClassNotFoundException 当ProGuard删除了您的 应用程序调用

当ProGuard通过添加 -在proguard.cfg文件中保留行。例如:

-保持公开课

以下是我的libs文件夹中的jar列表(如果有帮助):

05/31/2013  10:47 AM    <DIR>          .
05/31/2013  10:47 AM    <DIR>          ..
05/15/2012  09:22 AM            34,093 acra-3.1.2.jar
01/14/2013  09:07 AM            51,643 activation.jar
01/14/2013  09:06 AM            46,184 additionnal.jar
05/25/2013  04:14 PM           501,154 android-support-v13.jar
05/15/2012  09:22 AM           312,866 commons-lang3-3.0.1.jar
05/15/2012  09:22 AM           269,014 commons-net-3.0.1.jar
05/31/2013  10:47 AM           170,927 google-api-client-1.14.1-beta.jar
05/31/2013  10:47 AM             9,068 google-api-client-android-1.14.1-beta.jar
05/31/2013  10:47 AM           137,977 google-api-services-drive-v2-rev76-1.14.2-beta.jar
05/31/2013  10:47 AM           268,450 google-http-client-1.14.1-beta.jar
05/31/2013  10:47 AM            10,072 google-http-client-android-1.14.1-beta.jar
05/31/2013  10:47 AM             7,828 google-http-client-gson-1.14.1-beta.jar
05/31/2013  10:47 AM             6,038 google-http-client-jackson-1.14.1-beta.jar
05/31/2013  10:47 AM             6,076 google-http-client-jackson2-1.14.1-beta.jar
05/31/2013  10:47 AM            64,952 google-oauth-client-1.14.1-beta.jar
05/31/2013  10:47 AM           180,110 gson-2.1.jar
05/31/2013  10:47 AM           206,797 jackson-core-2.1.3.jar
05/31/2013  10:47 AM           232,131 jackson-core-asl-1.9.11.jar
05/31/2013  10:47 AM            33,015 jsr305-1.3.9.jar
01/14/2013  09:06 AM           440,508 mail.jar
05/15/2012  09:22 AM           134,421 zip4j_1.2.5.jar
2013年5月31日上午10:47。
2013年5月31日上午10:47。。
2012年5月15日09:22 AM 34093 acra-3.1.2.jar
2013年1月14日09:07 AM 51643 activation.jar
2013年1月14日09:06 AM 46184 additionnal.jar
2013年5月25日04:14 PM 501154 android-support-v13.jar
2012年5月15日09:22 AM 312866 commons-lang3-3.0.1.jar
2012年5月15日09:22 AM 269014 commons-net-3.0.1.jar
2013年5月31日上午10时47分170927 google-api-client-1.14.1-beta.jar
2013年5月31日上午10:47 9068 google-api-client-android-1.14.1-beta.jar
2013年5月31日上午10:47 137977 google-api-services-drive-v2-rev76-1.14.2-beta.jar
2013年5月31日上午10:47 268450 google-http-client-1.14.1-beta.jar
2013年5月31日上午10:47 10072谷歌-http-client-android-1.14.1-beta.jar
2013年5月31日上午10时47分7828谷歌-http-client-gson-1.14.1-beta.jar
2013年5月31日上午10时47分6038谷歌-http-client-jackson-1.14.1-beta.jar
2013年5月31日上午10时47分6076谷歌-http-client-jackson2-1.14.1-beta.jar
2013年5月31日上午10:47 64952 google-oauth-client-1.14.1-beta.jar
2013年5月31日上午10:47 180110 gson-2.1.jar
2013年5月31日上午10:47 206797 jackson-core-2.1.3.jar
2013年5月31日上午10:47 232131 jackson-core-asl-1.9.11.jar
2013年5月31日上午10:47 33015 jsr305-1.3.9.jar
2013年1月14日09:06 AM 440508 mail.jar
2012年5月15日09:22 AM 134421 zip4j_1.2.5.jar

可能有点晚,但为了寻找类似问题的解决方案,我了解到您必须告诉proguard在libs jar中保留一些类。请参阅日志,其中显示
警告:…
找不到引用的类…

因此,在您的情况下,应:

-keep class javax.security.** { *; }
-keep class java.beans.** { *; }
-keep class java.awt.** { *; }


对于包含这些类的
/libs
中的每个jar。

在这方面工作了几天后,恐怕解决方案是禁用Proguard。我不明白为什么“-dontshrink”不起作用。这将使一切都处于混乱状态。我现在正试图与Android Studio合作,但即使是它也有它的问题。嗨,你找到解决方案了吗?
-keep class javax.security.** { *; }
-keep class java.beans.** { *; }
-keep class java.awt.** { *; }
-libraryjars libs/XYZ.jar