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