使用ProGuard删除Android中的LibGDX日志

时间:2014-04-05 14:34:26

标签: android logging ant libgdx proguard

我有一个proguard.cfg文件,其中包含几个语句,包括优化过程和日志抑制:

-assumenosideeffects class android.util.Log { *; }

-assumenosideeffects class com.badlogic.gdx.Application {
    public static void debug(...);
    public static void error(...);
    public static void log(...);
}

在最终输出APK文件中正确删除了对Log.*的呼叫。但是gdx日志调用仍然在代码中。例如,我仍然可以在输出中看到类似的内容:

Gdx.app.debug("debug()", "^");
Gdx.app.error("error()", "^");
Gdx.app.log("log()", "^");

我还尝试将我的配置的这部分放在proguard-optimize.txt文件中,就像我在类似问题上看到的那样,然后在project.properties文件中设置正确的值,如下所示:proguard.config=proguard-optimize.txt:proguard.txt但是它不起作用

如果我放置一般通配符

,这些调用只会被删除
-assumenosideeffects class com.badlogic.gdx.Application {
    *;
}

但我不想删除对其他Application静态方法的调用,例如add*get*()

启用优化步骤(6次通过)。

2 个答案:

答案 0 :(得分:4)

Gdx.app.debug is not static它的实例方法(appGdx类的静态字段。)

尝试:

-assumenosideeffects class com.badlogic.gdx.Application {
    public void debug(...);
    public void error(...);
    public void log(...);
}

答案 1 :(得分:1)

在您的应用程序代码中尝试类似的内容:

Gdx.app.setLogLevel(Application.LOG_NONE);

这将阻止记录消息。

干杯!