必须在[proguard.optimize.peephole.ClassMerger]中覆盖方法,如果曾在Android Studio中调用过

Jac*_*ień 3 android proguard gradle android-studio

至少看过2个类似的问题,但都考虑了eclipse非gradle构建.

我正在尝试使用gradle组装发布:

./gradlew myapp:assembleRelease --stacktrace
Run Code Online (Sandbox Code Playgroud)

除了最新的Google proguard示例,我的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.**
Run Code Online (Sandbox Code Playgroud)

这似乎消除了所有的警告,但现在正在与神秘的挣扎

Caused by: java.lang.UnsupportedOperationException: Method must be overridden in [proguard.optimize.peephole.ClassMerger] if ever called
Run Code Online (Sandbox Code Playgroud)

......我不知道这意味着什么.

kur*_*ryt 5

我有同样的问题,从未发现问题的根源.我确实发现如果你在proguard文件中添加规则来跳过优化,它会阻止构建错误的发生.

-dontoptimize
Run Code Online (Sandbox Code Playgroud)