web-dev-qa-db-ja.com

AndroidのFacebook SDKが依存関係のサポートライブラリを複製しています

新しいFacebook SDK 3.0ベータ版を実装しました。ライブラリプロジェクトにはAndroidサポートライブラリv4が含まれています。サポートライブラリも自分のプロジェクトにあります(ただし、別のバージョンです)。FacebookSDKをライブラリとして追加すると、次のエラーが発生しますコンソールで:

Jar mismatch! Fix your dependencies
Found 2 versions of Android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.

ビルドパスのlibsフォルダーを除外しようとしましたが、エラーが残ります。

両方の場所に同じ.jarを配置する必要があります。ここで何か不足していますか?アイデアは、自分のプロジェクトのサポートライブラリを使用することです(更新を維持するため)。

34
nsemeniuk

異なるプロジェクトが2つの個別のサポートライブラリを使用しているため、チェックサムが異なるようです。

両方でこれを繰り返す必要があります Facebook SDKプロジェクトと作成中のアプリ。

このエラーが発生したときに私がすることは次のとおりです。

  1. プロジェクトを右クリックします。

  2. Androidツールにカーソルを合わせます。

  3. [サポートライブラリを追加...]をクリックします

  4. ライブラリのダウンロードを受け入れます。

これにより、2つのことが保証されます。 Googleソースから最新バージョンのサポートライブラリを入手し、b。すべてのプロジェクトにまったく同じライブラリがあります。

幸せなコーディング!

122
thepoosh

プロジェクト内の1つを削除し、クラスパスから削除して、プロジェクトを再構築してください。

1
Neil

上部の回答に記載されているメニューから同じバージョンのサポートライブラリをインストールすることは、非常に良い解決策です。

これは私にとってはうまくいかない場合がありますが(私のワークスペースフォルダーがDropboxと同期されているため、Eclipseがファイルを上書きしない場合があると思います)、私が使用しているアプローチは、中央からサポートライブラリをリンクすることです場所。

これらのJARファイルはSDKフォルダー内にあり(たとえば、WindowsではC:\ Program Files(x86)\ Android\android-sdk\extras\Android \)、SDKマネージャーを実行すると更新されるため、参照するだけで済みます。 Facebook(またはその他のライブラリ)とプロジェクトの両方からの1つ。結局、JARファイルのコードはclasses.dexlibsフォルダにサポートライブラリは必要ありません。

また: Gradle ビルドシステムとその依存関係管理、または Maven を使用する場合、これらのような問題は発生しませんが、正しくセットアップするにはさらに時間と知識が必要です。

1
Igor Čordaš