3

私は次のことをしました:

  1. Eclipse で作業用の Android プロジェクト (ライブラリーやテスト プロジェクトではない) を作成します。アクティビティ XA を持つ X という単一のパッケージがあります。
  2. 少なくとも 1 つのクラス YC を使用して、前述のプロジェクト内に新しい Java パッケージ Y を作成します。
  3. XA 内から YC を呼び出します (つまり、以前に機能していた元のパッケージから新しいパッケージ内の何かを呼び出します)。
  4. Android プロジェクトをビルドして実行します。

正常にビルドされますが、YC を使用する最初の行で NoClassDefFoundError がスローされ、YC が見つからないというメッセージが表示されます。リファクタリング -> YC をパッケージ X に移動 (現在は XC) すると、ランタイム例外はスローされなくなりました。どうしたの?

あいまいなヒント: ビルド時と実行時のクラスパスが何らかの形で同期しなくなったときに同様の問題が発生する可能性があることを読みましたが、問題をトラブルシューティングまたは修正する方法をまだ見つけていません。

4

1 に答える 1

2

アクティビティを定義するAndroidManifest.xmlときは、サブパッケージまたは別のパッケージにあるアクティビティの完全修飾クラス名を設定する必要があります。

完全修飾クラス名は のようになりますcom.example.my.cool.app.Activity。別の方法として、サブパッケージのみを操作するandroid:name=".app1.AnotherActivity"場合、ベース パッケージが this のように見える場合、このように設定できますcom.example.my.cool

于 2010-11-26T23:58:54.333 に答える