【发布时间】:2014-05-17 21:56:00
【问题描述】:
我有一个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(...);
}
对Log.* 的调用已在最终输出的 APK 文件中正确删除。但是 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 次通过)。
【问题讨论】:
-
我对 proguard 了解不多,但调用实际上使用
com.badlogic.gdx.backends.android.AndroidApplication实例会不会是个问题? (Application是一个接口。) -
确实可能是这种情况,但是我不明白为什么当我使用通配符时调用会被删除。反正我会试试的。
标签: android logging ant libgdx proguard