web-dev-qa-db-ja.com

新しい「V7 Appcompat library」を使用する場合、SDK = 7以上で「V4 Support Library」が必要ですか?

Action Bar SherlockからAction Bar compatに移行しています。 ABSを削除し、その中にsupport-v4-googleマップがあり、エラーが発生しました。 v4をプロジェクトに直接追加して、解決するかどうかを確認しますが、知りたいのは次のとおりです。

ライブラリが冗長または補完的なものである場合、ドキュメントから本当に理解できませんか?

アドバイス、ポインタなどをありがとう.

編集:これはv4を「外部jar ...」で追加したエラーです。それを解決します。

The type Android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. 
It is indirectly referenced from required .class files

しかし、すでにv7を持っている場合、v4を追加すべきではないと言う場合、どのようにEclipseに説明しますか?

関連する投稿、ソリューションはここにv4を追加することでした。 ActionBarActivityを拡張する場合、タイプアクティビティの階層は一貫していません

編集2:これらの手順をポイントごとに実行した場合、v4 jarはv7ライブラリプロジェクトに含まれます。 http://developer.Android.com/tools/support-library/setup.html#add-library 私のセットアップは:

  • Android 4.3:チェックなし
  • プライベートLib:チェックなし
  • v7-app .../src:チェック
  • v7-app .../gen:チェック
  • ADependencie:チェックなし
  • 生v7 jar:チェック
  • 生v4 jar:チェック
34
Poutrathor

v7にはv4サポートライブラリが含まれているため、v4サポートライブラリを再度使用する必要はありません。

v7サポートライブラリのlibsフォルダを見ると、v4 jarがライブラリで既に参照されていることがわかります。

56
tyczj

V7はAndroidサポートライブラリの新しいバージョンであり、V4サポートライブラリのV7に実装された新しいものです。したがって、v4のすべてのメソッドとクラスはv7内で使用できます。

したがって、v7ライブラリを追加する場合、v4ライブラリを追加する必要はありません。

5
Sunil Kumar

Android Studioを使用している場合、v7サポートライブラリが含まれるデフォルトの方法は、build.gradleファイルで定義されたmaven依存関係です。

dependencies {
    compile 'com.Android.support:appcompat-v7:18.0.0'
}

Appcompat-v7 .aarファイルにはv4クラスが含まれていません。これは、build/exploded-bundles/ComAndroidSupportAppcompatV71800.aarフォルダーで確認できます。私が見つけたのは、新しいプロジェクトを作成すると、SDKフォルダーのv4の.jarファイルも含まれることです。

2
Shaun Kutch

私の場合(Eclipse)では、プロジェクトにインポートするv4およびv7 jarに依存します。

私の提案は、このフォルダーにある両方のファイルjarを使用することです:C:\ adt-bundle-windows-x86_64-aaaammgg\sdk\extras\Android\support\v7\appcompat\libs

2
Alecs

私の場合、Eclipseでpublic class MainActivity extends AppCompatActivityを使用したとき、「Android-support-v7-appcompat.jar」だけでは不十分でした。 Android-support-v4.jar(ビルドパス->ライブラリ-> JARの追加)も追加する必要がありました。そのときだけAppCompatActivityが受け入れられました。

0
Apostolos