我有一个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次通过)。
答案 0 :(得分:4)
Gdx.app.debug
is not static
它的实例方法(app
是Gdx
类的静态字段。)
尝试:
-assumenosideeffects class com.badlogic.gdx.Application {
public void debug(...);
public void error(...);
public void log(...);
}
答案 1 :(得分:1)
在您的应用程序代码中尝试类似的内容:
Gdx.app.setLogLevel(Application.LOG_NONE);
这将阻止记录消息。
干杯!