Proguard从runnable中删除我的方法,但是只有我将这个类与runnable(嵌套类)一起添加到异常......
所以...如果我通过-keep将它添加到异常,那么为什么要删除方法调用? (这是此runnable中唯一的一行,它将其删除......)
Main.createTask(pl, new Runnable()
{
@Override
public void run()
{
try
{
myMethod(false);
} catch (final IOException e)
{
Main.log(Level.WARNING, "...");
}
}
});
在继续之后......
Main.createTask(pl, new Runnable()
{
@Override
public void run()
{
try{} catch (final IOException e)
{
Main.log(Level.WARNING, "...");
}
}
});
答案 0 :(得分:0)
ProGuard的优化步骤可能会在两种情况下删除该方法:
-assumenosideeffects
。与通配符一起使用是一种危险的选择。您可以轻松删除或注释掉所有-assumenosideeffects
选项,以检查这是否是原因。如果您正在使用反编译器检查已处理的代码,您可能需要检查反编译器是否正常工作。您可以使用javap -c
仔细检查。