Android java.lang.NoSuchFieldError

时间:2012-06-16 14:36:30

标签: android

在某些情况下,当从匿名类访问活动字段时,我在运行时得到NoSuchFieldError: java.lang.NoSuchFieldError:MyActivity.myField

编辑:我现在确定这是一个Android问题,因为所有内容都正确编译但在运行时无法正确解析。当更改为 MyActivity.this.myField 而不是简单的 myField 时,一切都很完美。

BTW,我重新检查过,我在其他任何地方都没有任何其他的myField。另外,在Eclipse中打开声明时,它会进入预期的字段( myField )。

唯一的问题是我无法在示例项目中重现这一点。我只留下说这是我项目中的一个特定问题,但我不愿意这样做,我不能发布这个项目。

如果有人偶然发现类似的东西,我会保持这个。

以下是我可以发布的代码崩溃我的项目而不是样本代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    new Runnable() {
        @Override
        public void run() {
            Toast.makeText(MyActivity.this, myField.getName(), Toast.LENGTH_SHORT).show();
        }
    }.run();
}

1 个答案:

答案 0 :(得分:0)

似乎访问具有类'前缀的字段解决了它: MyActivity.this.myField

奇怪。我想这是Android在运行时的字段分辨率。