【发布时间】:2016-10-14 12:27:28
【问题描述】:
我在我的 android 程序中经常使用 Log.i,我想在发布版本中将它们全部删除。
我做过的事情是这样的:
- 添加 proguard-rules.pro:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
您可以看到 minifyEnabled 设置为 true,我看到 .apk 文件的大小从 1.9M 减少到 1.2M。
- 添加“proguard-rules.pro”
我添加了“proguard-rules.pro”:
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int i(...);
}
-dontwarn okio.**
我确定它已被使用,因为之前有很多 okio* 警告的警告,然后在我添加 -dontwarn 后警告就消失了。
为了确保日志消失,我在连接到运行 Android Studio 的 PC 的设备上运行应用程序。它没有处于调试模式,但我只是使用它的 Android Monitor -> 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 日志?
我错过了哪一步?
【问题讨论】:
标签: android android-studio proguard release logcat