的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(...);
}
将上面的代码添加到proguard-rules.pro只有在我将getDefaultProguardFile(‘proguard-android.txt’)设置为(‘proguard-android-optimize.txt’)时才能工作
但是通过将其设置为proguard-android-optimize.txt将启用我不想要的优化标志.
那么如何在没有Proguard对我的代码进行任何缩小或优化的情况下禁用日志记录和缩小资源呢?
解决方法:
您应该能够通过仅启用特定的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
}
}