16

android-support-v4.jarとそれに含まれるクラスを使用するアプリをコンパイルしようとしてFragmentationいますが、コンパイルしようとすると、コードにエラーがあるというメッセージが表示され続けます。すべてのエラーは、にあるさまざまなFragmentationクラスに関係してい.JARます。ctrl-clickingプロジェクトフォルダを試してから選択Android Tools -> Add Compatibility Libraryしましたが、次のエラーが発生し続けます。

[2011-12-20 11:55:31 - Android Compatibility JAR not found:]
/Applications/eclipse/Eclipse.app/Contents/MacOS/v4/android-support-v4.jar

.JARなぜEclipseのパッケージコンテンツを探しているのでしょうか?プロジェクトのプロパティに移動してJavaビルドパスに移動.JARし、MainActivity/libsフォルダからインポートしましたが、機能しませんでした。次に、SDKディレクトリからインポートしようとしましたが、機能しませんでした。プロジェクトのプロパティを修正し、何度もクリーンアップしてビルドしました。Eclipse、コンピューターを再起動し、Eclipse、Android SDK、ADTを再ダウンロードしてインストールしましたが、まだ何もありません。私は完全に困惑しています。


編集


ビルドパスを確認し、SDKディレクトリとSDKディレクトリの両方から.JARをインポートしましたMainActivity/libs。その地獄のために、私はエラーに表示され続けるディレクトリに.JARを追加しましたが、それは機能しませんでした。Eclipseがアプリケーションパッケージの内容でそれを検索する理由は何ですか?


アップデート


したがって、プロジェクトの内容をいじくり回してもエラーは表示されませんが、MainActivityフォルダーにはエラーがあると表示され、コンパイルできません。

nyahのように:

ここに画像の説明を入力してください


リビジョン


libsしたがって、質問は「Eclipseがプロジェクトのディレクトリまたは外部の.JARとしてインポートするために使用したAndroid SDKディレクトリではなく、Eclipseアプリケーションのパッケージコンテンツで.JARを検索するのはなぜですか?」と思うかもしれません。


アップデート#2


いじくり回した後、エラーが1つだけ発生します。これは、このメソッドにあります。

@Override
public MenuItem setOnActionExpandListener(OnActionExpandListener onActionExpandListener) {
    // Noop
    return this;
}

クイックフィックスは、@ Overrideアノテーションを削除する必要があると言っていますが、そのメソッドはスーパークラスメソッドをオーバーライドする必要があります。

これらはそれが示すエラーです:

Multiple markers at this line
- The method setOnActionExpandListener(MenuItem.OnActionExpandListener) of type SimpleMenuItem must override a superclass method
- implements android.view.MenuItem.setOnActionExpandListener
4

12 に答える 12

19

ここでjarを探しているようです:/Applications/eclipse/Eclipse.app/Contents/MacOS/v4/android-support-v4.jar

android-support-v4.jarは<sdk>/extras / android / compatibility/v4にあります

これをJavaビルドパスの外部jarとして必ず追加してください

于 2011-12-20T18:19:11.303 に答える
12

この問題は、1-libから「android-support-v4.jar」を削除することで解決できます。2-プロジェクトの名前を右クリックして、「AndroidTools」と「AddSupportLibrary」を選択します。

于 2013-12-28T12:45:58.580 に答える
4

それでも解決しない場合:すでに述べたように、Eclipseで[プロジェクトのプロパティ]>[Javaビルドパス]>[ライブラリ]>[外部の追加]に移動し、adkディレクトリから取得します。

また、Java 1.6をまだ設定していない場合は、デフォルトのコンパイルバージョンとして設定します。これにより、説明したオーバーライドエラーが解決されます。

于 2012-01-01T21:52:11.970 に答える
2

デバッグ証明書の有効期限が切れていることが判明したため、~/.android/debug.keystoreEclipseを削除して再起動するだけで、すべてが機能しました。

于 2012-01-11T15:48:02.107 に答える
1

この質問は回答済みですが、これは既知の問題であり、コメント9によるとADT-17プラグインリリースで修正される予定です:http ://code.google.com/p/android/issues/詳細?id = 21488

さらに、この問題を抱えている人は、互換性JARを見つからないと表示されている場所にコピーできます。明らかに間違った場所を探しているので(android-sdkディレクトリではなくEclipseディレクトリをチェックしているため)、今のところ、簡単な修正は、パッケージを見つけたい場所に置くことです。属する。

私にとっては、C:/ android-sdk / extras / android / support /内のv4ディレクトリをC:/eclipse/ディレクトリにコピーするのと同じくらい簡単でした。

于 2012-02-15T22:53:03.380 に答える
1

Ubuntuで同じ問題が発生しました。[ツール]->[オプション]に移動します。Force https:// ... to http:// Open AndroidSDKManagerをチェックします。Extras-> AndroidSupportLibraryを確認してください。

于 2013-02-16T06:10:59.080 に答える
1

同様のことが私に起こりました。MainActivity.javaの上部に、次のインポートでエラーが発生しました。

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

左側の各行には、電球がいくつかの提案をしています。それをクリックすると、オプションの1つが「プロジェクトのセットアップを修正」になります。その後、インポートを修正するためのいくつかのオプションから選択できるようになります。android-support-v4.jarを指定するオプションを選択する必要があります。

于 2013-07-01T23:01:09.703 に答える
1

urプロジェクトを右クリック->Androidツールを選択->サポートライブラリの追加を選択し、サポートライブラリをインストールするだけです。

于 2014-12-17T11:33:55.027 に答える
0

Androidツール->互換性ライブラリの追加を行わず、Javaビルドパスライブラリにjarのみを追加しようとしていますか?

私はこのjarライブラリをこのように使用していますが、問題なく動作します。

于 2011-12-20T20:45:34.720 に答える
0

もう1つの注意点は、管理者権限なしでWindows7でAndroidSDKManagerを実行することでした。サポートパッケージをインストールしようとしますが、常に失敗し、実際のパッケージがダウンロードされることはありません。

C:\ Program Files(x86)\ Android \ android-sdk \ extras \ android \ support \ v4 \ android-support-v4.jar

于 2012-02-13T16:05:55.297 に答える
0

私も同じ問題を抱えていました。

プロジェクトのプロパティ:Javaビルドパス:注文とエクスポートタブで、android-support-v4.jarの横のボックスがチェックされていませんでした。チェックボックスをオンにすると、エラーはなくなりました。

于 2012-04-09T00:22:36.957 に答える
0

解決策:Androidプロジェクトの作成中(または作成後のマニフェストファイル)に、「TargetSDK」と「Compilewith」に同じAPIを入力するようにしてください。

于 2014-02-22T19:03:47.090 に答える