ProGuard 显然不会 运行
ProGuard obviously does not run
我尝试用混淆器做一些代码优化,但直到现在都没有成功。
SO 上类似问题的所有答案都没有帮助我,google 提供的有关混淆器的文档也不是很有帮助。
我做了什么:
我的 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 运行?
好吧,看来我一直是不记得的受害者"Did you try to turn it off and on again?"
今天我启动了我的机器,打开了 Android Studio,一切都很顺利。看起来 Android Studio、Gradle、ProGuard 等等缓存了一些东西,所以我之前的错误尝试让所有东西都处于不稳定状态,没有任何效果。
因此,如果任何人有类似的设置(Android Studio 3.0 和 Gradle 4.1),具有如上所述的确切配置并且事情不起作用:
"Try to turn it off and on again".
:-)
(不仅仅是 Android Studio,因为这是我昨天所做的但没有成功。)
我尝试用混淆器做一些代码优化,但直到现在都没有成功。 SO 上类似问题的所有答案都没有帮助我,google 提供的有关混淆器的文档也不是很有帮助。
我做了什么:
我的 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 运行?
好吧,看来我一直是不记得的受害者"Did you try to turn it off and on again?"
今天我启动了我的机器,打开了 Android Studio,一切都很顺利。看起来 Android Studio、Gradle、ProGuard 等等缓存了一些东西,所以我之前的错误尝试让所有东西都处于不稳定状态,没有任何效果。
因此,如果任何人有类似的设置(Android Studio 3.0 和 Gradle 4.1),具有如上所述的确切配置并且事情不起作用:
"Try to turn it off and on again".
:-)
(不仅仅是 Android Studio,因为这是我昨天所做的但没有成功。)