在ProGuard docs中,它显示:“Google的Dalvik VM无法处理超载的静态字段。” 据我所知,这样的事情
public class A {
private static final Log log = LogFactory.getLog(A.class.getName());
...
}
public class B extends A {
private static final Log log = LogFactory.getLog(B.class.getName());
...
}
然后在Android上不好。这真的是真的还是我弄错了? 那么有什么意义(我现在可以运行我的代码,但是在进行proguard处理后dex失败了)?
答案 0 :(得分:1)
我认为这意味着你不能在班级A
中有两个字段,两个字段都名为log
,每个字段都有不同类型:
public class A {
private static final Log log = LogFactory.getLog(A.class.getName());
private static final int log = 5;
...
}
您无法在源代码中执行此操作,但ProGuard等工具可以生成.class
这样的文件,使反编译更有趣。
您无需担心自己的B extends A
示例;那将是Dalvik的一个错误。这样的错误会很快得到修复!
答案 1 :(得分:0)
在Java中,final
关键字意味着您无法覆盖它,所以这是真的。