我在我的android程序中使用了很多Log.i,我想在发布版本中删除它们。
我所做的就像这些:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

您可以看到minifyEnabled
设置为true
,我看到.apk文件大小从1.9M减少到1.2M。
我添加了' proguard-rules.pro' as:
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int i(...);
}
-dontwarn okio.**

我确定它已被使用,因为在我添加-dontwarn
之后警告已经消失之前,有许多警告显示okio *警告。
为了确保日志消失,我在连接到运行Android Studio的PC的设备上运行应用程序。它不处于调试模式,但我只使用其Android监视器 - > logcat查看是否有任何日志输出。
奇怪的是我仍然看到我的应用程序的日志输出。喜欢
10-14 18:53:01.436 3173-3173/? I/b: send: 03 ed 00 02 55
这是我的
代码的结果Log.i(TAG, "send: "+ toHex(req));
从日志的?
开始,我假设ProGuard工作(否则它应该是我的完整应用名称)。但为什么我仍然看到logcat日志?
我错过了哪一步?
答案 0 :(得分:1)
您需要使用优化的proguard配置,以便让proguard优化您的代码。
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
答案 1 :(得分:1)
使用proguard-android-optimize.txt
代替proguard-android.txt