2

別のアクティビティから呼び出しています。2番目のロード中に私が得る

java.lang.NoClassDefFoundError 

呼び出されたアクション クラス

public class Entry extends Activity implements ViewPager.OnPageChangeListener {

ViewPager form;

@Override
public void onCreate( Bundle savedInstanceState )
{
....
form.setOnPageChangeListener(this);
...
}
}

と を削除するimplements ViewPager.OnPageChangeListenerとアクティビティが読み込まれますform.setOnPageChangeListener(this)が、これらを使用するとスローされます

java.lang.NoClassDefFoundError.. 

このコードは ADT16 で完全に機能していましたが、ADT18 に更新したところ、この混乱に陥りました。

4

3 に答える 3

2

これを試して:

プロジェクトに新しいフォルダーlibsを作成し、すべての外部JARファイルをこのフォルダーにコピーします。

Project次に、 -> Properties->を右クリックしますJava Build Path。ここで、JARファイルのパスをlibsフォルダーに変更し、コンピューターパスから指定した外部jarファイルのパスを削除します。その後、それは動作します。

注: *プロジェクトにすでにフォルダー「lib」がある場合は、フォルダー名「lib」のみを「libs」に変更してください。私の意見がわからない場合は、このサイトを確認してください

フォルダの名前はすべきではありlibsませんLibs

于 2012-04-26T05:35:42.343 に答える
1

ViewPager.OnPageChangeListenerクラスは、バージョン 4 (Ice Cream Sandwich) ライブラリからのものです。プロジェクトがそれらを見つけられないため、何かが正しく構成されていません。最初に確認する場所は"Project Settings" -> Androidで、プロジェクトのビルド ターゲットに対して 4.0 または 4.0.3 がチェックされていることを確認します。

それらのいずれかを選択しても、Eclipse は古いライブラリーを使用することがあります。確認する場所は次の 2 つです。

  1. AndroidManifest.xmlファイルandroid:versionCode="4"メインマニフェストにあることを確認し、 <uses-sdk android:minSdkVersion="14" />(少なくとも 14)

  2. 次に、project.propertiesファイルをチェックして、以下があることを確認しますtarget=android-14

support-v4.jarlibs ディレクトリにファイルを含めることで、4.0 の追加機能を古いプラットフォームに追加する方法もあります。

上記のオプションのいずれかで問題が解決するはずです。幸運を!

于 2012-04-26T17:14:56.663 に答える
0

瓶が必要な2番目のクラスがありました。libs フォルダーを確認したところ、この jar が libs フォルダーにコピーされていないことがわかりました。したがって、この 2 番目のアクティビティを起動しようとすると、常に NoClassDefFoundError が返されました。libsフォルダーにjarをコピーするだけで、問題は解決しました。

于 2013-01-29T09:15:24.737 に答える