1

アクティビティから新しいインテントを起動しようとしていますが、NoClassDefFoundErrorが発生します。例外は解決中に発生しますMyClassB.class。奇妙なことに、他のクラスを解決できます。エラーはAndroidバージョン2.2および2.3でのみ発生し、4.0以降では正常に機能します。

エラーの原因となるクラスと正常に解決される他のクラスの両方が、コードが実行されているアクティビティと同じパッケージに含まれています。基本的に、以下のコードは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

これは、をMyClassB.class実装するために発生しましたActionBar.OnNavigationListener。クラスに上位のAPIレベルの特定のコードが含まれている場合、実行時に適切にセットアップされないため、この種のエラーが発生するようです。MyClassB.class2.3でクラッシュすると予想していましたNoClassDefFoundErrorが、特に不思議でした。

于 2013-01-17T16:09:17.987 に答える
0

super.onCreate(bundleこれが問題かどうかはわかりませんが、onCreateメソッドで最初に)を追加する必要があります。

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