未捕获的翻译错误Build proguard

时间:2015-11-20 08:44:33

标签: android android-studio gradle android-build android-proguard

当我尝试使用带有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文件有问题吗?

2 个答案:

答案 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'
        }

参考链接: