Android proguard minifyEnabled true + multidex = error
Posted
技术标签:
【中文标题】Android proguard minifyEnabled true + multidex = error【英文标题】: 【发布时间】:2017-10-16 20:46:43 【问题描述】:当我启动我的应用程序时,我有很多警告和错误:
信息:Gradle 任务 [:app:assembleDebug] 警告:butterknife.compiler.ButterKnifeProcessor$IdScanner:不能 查找超类或接口 com.sun.tools.javac.tree.TreeScanner 警告:butterknife.compiler.ButterKnifeProcessor$RClassScanner:不能 查找超类或接口 com.sun.tools.javac.tree.TreeScanner 警告:butterknife.compiler.ButterKnifeProcessor$VarScanner:不能 查找超类或接口 com.sun.tools.javac.tree.TreeScanner 警告:org.apache.poi.hssf.usermodel.DummyGraphics2d:找不到 超类或接口 java.awt.Graphics2D 警告:org.apache.poi.hssf.usermodel.EscherGraphics:找不到 超类或接口 java.awt.Graphics 警告:org.apache.poi.hssf.usermodel.EscherGraphics2d:找不到 超类或接口 java.awt.Graphics2D 警告:org.apache.poi.poifs.crypt.dsig.SignatureMarshalListener: 找不到超类或接口 org.w3c.dom.events.EventListener 警告:org.apache.poi.xslf.usermodel.XSLFRenderingHint:找不到 超类或接口 java.awt.RenderingHints$Key …… 错误:任务执行失败 >':app:transformClassesAndResourcesWithProguardForDebug'。 作业失败,查看日志了解详情
我的程序规则是:
# Workaround for ProGuard not recognizing dontobfuscate -dontobfuscate -dontoptimize -optimizations !code/allocation/variable #Rules for javascript and webview -keepclassmembers class fqcn.of.javascript.interface.for.webview public *; -keepattributes *Annotation*,EnclosingMethod,Signature #Parcel -keep class * implements android.os.Parcelable public static final android.os.Parcelable$Creator *; -keep class org.parceler.Parceler$$Parcels -keep public class org.apache.poi.** *; #BUTTERKNIFE # Retain generated class which implement ViewBinder. -keep public class * implements butterknife.internal.ViewBinder
公开();
# Prevent obfuscation of types which use ButterKnife annotations since the simple name # is used to reflectively look up the generated ViewBinder. -keep class butterknife.* -keepclasseswithmembernames class * @butterknife.* <methods>; -keepclasseswithmembernames class * @butterknife.* <fields>;
我的毕业生:
buildTypes release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
如果我将 minifyEnabled 更改为 false。没有错误。我正在使用多索引模式。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:试试这个 在 build.gradle 应用级依赖中添加这一行
编译'com.android.support:multidex:1.0.1'
dexOptions javaMaxHeapSize "4g"
minifyEnabled false
multiDexEnabled true
【讨论】:
Ashish,我拥有所有这些依赖项。如果我的 minifyEnabled false everthing 一切正常,我在上面写了,但我需要混淆代码。以上是关于Android proguard minifyEnabled true + multidex = error的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用“minifyEnabled true”时 Proguard 不起作用?
Android ProGuard警告 - 找不到引用的类“com.zhihu.matisse.R $ plurals”
坑:Android Studio gradle minifyEnabled 为 true debug断点失效
坑:Android Studio gradle minifyEnabled 为 true debug断点失效
是否添加“ minifyEnabled true”和“ proguard-android-optimize.txt”混淆了sqlite数据库并使其与以前的版本不兼容?