当我尝试使用带有Android Studio
的{{1}}构建项目时,我遇到此错误。
错误的详细信息
minifyEnabled true
我该如何解决?
的 * UPDATE
Proguard文件的内容。
- 优化通过5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations!code / simplifiedification / arithmetic,!field / ,! class / merge /
-dontwarn android.support。** -dontwarn com.atinternet。** -dontwarn org.apache。**
-keep public class * extends android.app.Activity -keep public class *扩展android.app.Application -keep public class *扩展android.app.Service -keep public class *扩展了android.content.BroadcastReceiver -keep public class *扩展了android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService
-keepattributes InnerClasses -keepattributes Annotation -keepattributes签名
-keepclasseswithmembernames class * { 原生的}
-keepclasseswithmembers class * { public(android.content.Context,android.util.AttributeSet); }
-keepclasseswithmembers class * { public(android.content.Context,android.util.AttributeSet,int); }
-keepclassmembers class * extends android.app.Activity {public void *(android.view.View); }
-keepclassmembers枚举* { public static ** [] values(); public static ** valueOf(java.lang.String); }
-keep class *实现android.os.Parcelable {public static final android.os.Parcelable $ Creator *; }
-dontwarn java.awt。** -dontwarn CompatHoneycomb -keep class android.support.v4。 {*; }
-keep class com.squareup.okhttp。** {*; } -dontwarn uk.co.senab.photoview。** -keep class uk.co.senab.photoview。** {*; }
我使用了:app:transformClassesWithDexForDevDebug
Uncaught translation error: com.android.dx.cf.code.SimException: expected type int but found com.apptimize.hz
Uncaught translation error: com.android.dx.cf.code.SimException: expected type int but found com.apptimize.oa
2 errors; aborting
我的proguard文件有问题吗?
答案 0 :(得分:0)
请参阅Compile with Proguard gives SimException: "local variable type mismatch"
上的农夫回答添加此项以禁用触发proguard错误的特定优化。
-optimizations!code / allocation / variable
为我工作。
答案 1 :(得分:0)
经过3到4天的详细探索后,我也遇到了同样的问题。问题出现在gradle版本以及处理dex和类的方式。
修复此问题
有两种情况
案例1:由于android测试案例大量复杂的Mock和Instrumentation测试用例。对于要通过的测试用例,我们必须禁用 minifyEnabled false ,这会禁用progaurd进程< strong> testCoverageEnabled false 。如果enbale testCoverageEnabled为true导致此问题。对于测试用例应该通过,您必须在调试模式下禁用progaurd并且testCoverageEnable为false。
debug {
minifyEnabled false
debuggable true
testCoverageEnabled false
proguardFile 'proguard-rules.pro'
}
案例2:定义testProgurdFile并使minifyEnabled在调试模式下成为proguard。
Compile with Proguard gives SimException: "local variable type mismatch"定义testProgurdFile,如下所示,将用于测试,您可以在其中指定testFramework使用的测试progaurd规则。
debug {
minifyEnabled true
debuggable true
testCoverageEnabled true
proguardFile 'proguard-rules.pro'
testProguardFiles 'test-proguard-rules.pro'
}
参考链接: