build.gradle:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.SginConfig
}
}
我不希望 Proguard 优化或混淆我的代码,因为它给我带来了很多麻烦。我只想删除日志调用并启用未使用资源的缩减。
proguard-rules.pro:
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int w(...);
public static int d(...);
public static int e(...);
}
只有当我将 getDefaultProguardFile 从 ('proguard-android.txt')
设置为 ('proguard -android-optimize.txt')
但是通过将其设置为 proguard-android-optimize.txt
将启用我不想要的优化标志。
那么,如果 Proguard 不对我的代码进行任何缩小或优化,我该如何禁用日志记录和缩减资源呢?
最佳答案
您应该能够通过仅启用 assumenosideeffects
所依赖的特定 Proguard 优化来做到这一点。它依赖的两个是:
- code/removal/simple:根据简单的控制流分析删除死代码。
- code/removal/advanced:根据控制流分析和数据流分析删除死代码。
您可以阅读更多关于不同优化选项的信息 here .所以这样的事情应该有效:
proguard-rules.pro
-optimizations code/removal/simple,code/removal/advanced
-dontobfuscate
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int w(...);
public static int d(...);
public static int e(...);
}
build.gradle
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.SginConfig
}
}
关于android - 仅使用 Proguard 来禁用日志记录和缩减资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450215/