我尝试用proguard进行一些代码优化,但直到现在还没有成功。 关于SO的类似问题的所有答案都没有帮助我,谷歌提供的关于proguard的文档也没有用。
我做了什么:
我在app-level的build.gradle中有以下内容:
buildTypes {
debug {
testCoverageEnabled = true
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debuggable.initWith(buildTypes.debug)
debuggable {
testCoverageEnabled = false
debuggable true
}
}
在我的proguard-rules.pro中,我添加了这个:
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
我没有更改proguard-android-optimize.txt
文件中的任何内容。
现在,当我构建一个签名版本的apk(Android Studio 3.0)时,反编译的结果显示我的代码中没有任何更改,并且没有可见的proguard输出(不在app / build / intermediates-folder中,而不是在gradle控制台)。我确信我错过了一些非常简单但我无法理解的事情。
还有什么我必须配置才能让proguard运行吗?
答案 0 :(得分:0)
今天我启动了我的机器,打开了Android Studio,一切都像魅力一样。看起来在Android Studio,Gradle,ProGuard中有一些缓存的东西,所以我之前的错误尝试使一切都处于不稳定的状态,没有任何效果。
因此,如果有人有类似的设置(带有Gradle 4.1的Android Studio 3.0),并且具有上述确切的配置,那么事情就不起作用了:
"尝试将其关闭再打开"。
:-)
(而不仅仅是Android Studio,因为这是我昨天所做的,没有成功。)