天天看點

android studio 代碼壓縮

android studio build.gradle檔案中配置了

minifyEnabled true

編譯出的apk會去掉項目中未使用的類和方法,導緻某些反射調用報錯,jni call java 報錯。

如何保證特定的方法不被删除

1、

proguard-project.txt混淆檔案

添加

-keep 保證某些方法不被删除

-keep class com.****.Util {

    *;

}
           

2、

也可以在方法或者類上面加上@keep(這種方式未驗證)

proguard-project.txt混淆檔案

-dontwarn android.support.annotation.Keep

#保留注解,如果不添加改行會導緻我們的@Keep注解失效

-keepattributes *Annotation*

-keep @android.support.annotation.Keep class **

@keep

public class Test {

}