1

我正在尝试从我的 Activity 启动一个新意图,但我得到了 NoClassDefFoundError。异常发生解决MyClassB.class。奇怪的是我可以解析其他类,并且该错误仅发生在 android 版本 2.2 和 2.3 中,它在 4.0+ 中运行良好。

导致错误的类和其他成功解析的类都与正在执行代码的 Activity 在同一个包中。基本上,下面的代码在 2.2/2.3 上给出了以下错误,但在 4.0+ 上工作正常。我也尝试过使用完整的包名,例如:com.me.MyClassB.class,但得到相同的错误。

我意识到这个问题很模糊,但我非常困惑,希望有人能提供帮助。

package com.me;

public class MyActivity extends Activity
{
     protected onCreate(Bundle bundle)
    {
       super.onCreat(bundle);

        Class a = MyClassA.class;
        Class b = MyClassB.class;
    }
}


01-17 10:37:36.473: E/AndroidRuntime(1976): java.lang.NoClassDefFoundError: com.me.MyClassB
4

2 回答 2

0

我不确定这是否是问题,但在您的 onCreate 方法中,您需要super.onCreate(bundle在开头添加 ) 例如

protected onCreate(Bundle bundle)
{
        super.onCreate(bundle);
        Class a = MyClassA.class;
        Class b = MyClassB.class;
}
于 2013-01-17T15:44:47.227 回答
0

这是因为MyClassB.class实现ActionBar.OnNavigationListener. 似乎如果类包含用于更高 api 级别的某些代码,它们在运行时无法正确设置,从而导致这些错误。我预计MyClassB.class会在 2.3 上崩溃,但这NoClassDefFoundError特别令人费解。

于 2013-01-17T16:09:17.987 回答