至少看到了两个类似的问题,但都考虑了eclipse的非gradle构建。
我正在尝试使用以下方法来组装gradle版本:
./gradlew myapp:assembleRelease --stacktrace除了最新的Google程序示例外,我的proguard.txt还包含:
# ButterKnife
-keep class *$$ViewInjector{}
-dontwarn butterknife.Views$InjectViewProcessor
-dontwarn butterknife.internal.**
#JodaTime
-dontwarn org.joda.time.**
#Apache
-dontnote org.apache.**
-dontwarn org.apache.**这似乎消除了所有的警告,但现在与神秘的斗争。
Caused by: java.lang.UnsupportedOperationException: Method must be overridden in [proguard.optimize.peephole.ClassMerger] if ever called...and,我不知道这是什么意思。
发布于 2014-11-18 22:06:18
以下是这3个库的正确的proguard配置:
# ButterKnife
-dontwarn butterknife.internal.**
-keep class **$$ViewInjector { *; }
-keepnames class * { @butterknife.InjectView *;}
#JodaTime
-dontwarn org.joda.time.**
#Apache
-keep public class org.apache.commons.io.**
-keep class org.apache.** { *; }
-dontnote org.apache.**
-dontwarn org.apache.**不确定这是否是升级,但这不再发生了
发布于 2014-06-30 15:24:13
我也有同样的问题,但从未发现问题的根源。我确实发现,如果您添加了一条规则来跳过优化过程,那么它将阻止生成错误的发生。
-dontoptimize发布于 2015-01-10 10:43:51
-dontoptimize指定不优化输入类文件,我不确定禁用优化是个好主意,最好是启用或禁用单个优化。
在您的情况下,您可以使用-optimizations optimization_filter
-optimizations !class/merging/vertical*,!class/merging/horizontal*Proguard将执行所有的优化,但垂直合并类和水平合并类的优化除外。
https://stackoverflow.com/questions/24107860
复制相似问题