【问题标题】:After pro guarding the release app still see logs亲守护发布应用后仍然看到日志
【发布时间】:2017-11-06 20:34:33
【问题描述】:

由于我非常困惑,请您帮帮我。签署我的发行版 APK 后,我安装了应用程序,但我仍然可以看到日志。

我在 build.gradle 中有以下内容:

release {
   minifyEnabled true
   shrinkResources false
   debuggable false
   testCoverageEnabled false
   zipAlignEnabled true
   jniDebuggable false

   proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}

我的proguard-rules.pro 有这个内容:

-dontwarn **
-target 1.7
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose

-optimizations !code/simplification/arithmetic,!code/allocation/variable
-keep class **
-keepclassmembers class *{*;}
-keepattributes *

#This will remove log
-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(...);
}

运行应用程序后,日志在 Android Monitor 中清晰可见:

11-06 12:29:03.306 18976-19064/? E/from getCookieList: Cookies: {......}

我看到了我制作的所有错误日志!错误日志不应该去掉吗?

非常感谢您在此问题上的时间和帮助。

【问题讨论】:

  • 伙计们,请帮我解决这个问题,因为我无法理解为什么我仍然在发布版本中看到我的 Log.e() 日志!

标签: android gradle proguard


【解决方案1】:

您使用此标志 -dontpreverify 关闭了 proguard 优化。

删除它

还有以! 开头的代码被排除,并且您已经排除了这些优化!code/simplification/arithmetic,!code/allocation/variable

您可以使用* 匹配优化的任何部分。

请查看android-proguard usage

【讨论】:

  • 我删除了,但结果还是一样
  • 没有变化,您能否通过添加一个 WORKING 示例来编辑您的答案?我会很感激的!难道我做错了什么?我通过单击在 Studio 中生成发布 APK:构建 -> 生成签名的 APK -> 选择发布风格,就是这样。
  • @Karoly 在此维护后应该可以工作,请确保您的 proguard-android-optimize.txt 在正确的位置 dir/build/intermediates/proguard-files
  • 另外,如果您使用风味,请确保您处理它productFlavors { flavor1 { } flavor2 { proguardFile 'flavor2-rules.pro' } }
  • @Karoly 在您构建项目时,该插件会将该文件的副本复制到 path
猜你喜欢
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
  • 2013-09-01
相关资源
最近更新 更多