Proguard保留用于记录的字符串常量

时间:2016-12-13 15:08:58

标签: android proguard aar

关注Removing unused strings during ProGuard optimisation我创建了Logg类,旨在通过Proguard轻松删除:

public class Logg {
    public static void e(Object... args) {
        Log.e(TAG, buildString(args));
    }

    public static void d(Object... args) {
        Log.d(TAG, buildString(args));
    }
}

接下来,我将这些规则添加到项目使用的proguard-rules.pro

-assumenosideeffects class com.mypackage.Logg {
    public static *** d(...);
    public static *** e(...);
}
-optimizationpasses 10

在构建项目之后,我使用JD-GUI检查生成的classes.jar文件并查看以下行:

new Object[1][0] = "Some log message";

Logg.e(...调用已被删除,但常量仍然存在。 -optimizationpasses 5行提到了String而不是Object

有没有办法确保Proguard会删除这些字符串?

0 个答案:

没有答案