【问题标题】:Android Jack Compiler not removing logs from proguard rulesAndroid Jack 编译器没有从 proguard 规则中删除日志
【发布时间】:2016-10-22 06:36:29
【问题描述】:

我尝试过使用:

-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(...);
}

在 Proguard 中删除日志,如果我不使用新的 Jack 编译器,它会很好用

defaultConfig {
    ...
     jackOptions {
         enabled true
     }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

当我编译 apk 时,我注意到所有日志在生产版本中都处于活动状态。是否有错误、错误或“-assumenosideeffects”尚不支持?

我可以在最终 apk 中从日志中删除字符串吗?

【问题讨论】:

    标签: android logging proguard android-jack-and-jill


    【解决方案1】:

    使用 Jack 编译器工具链时,不会使用 ProGuard。相反,Jack 将使用自己的工具来应用指定的规则。

    并非所有 ProGuard 规则都受支持(请参阅支持的 directives):-assumenosideeffects受支持。

    注意:DexGuard,ProGuard 的商业版本支持 ProGuard 的所有指令,并且可以与 Jack 结合使用,从 7.2 版本开始,将在 1-2 周内发布。

    【讨论】:

    • 是的,但是如果您查看source.android.com/source/jack.html,您会看到 -assumenosideeffects 列在“忽略的选项”中,但不起作用,或者尚未实施。
    • Jack 在遇到这样的规则时不会抛出错误,但它不会对它做任何事情,这就是我不支持的意思。
    • 那么 Jack 会导致生产 APK 中的安全漏洞?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2014-05-17
    • 2020-01-06
    • 1970-01-01
    相关资源
    最近更新 更多