web-dev-qa-db-ja.com

提供されるGradleの依存関係はJARではなくAARです

プロジェクトにParseLoginUIというライブラリを含めようとしているという問題があります。

問題は、コンパイルの代わりに提供されたタグを使用することです。提供されたタグは、このライブラリがライブラリ自体をコンパイルするのではなく、ライブラリが機能するためにプロジェクトがこの依存関係を提供する必要があることを意味すると思います。

したがって、私のAndroidライブラリでは、FacebookSDKをそのように参照します。

 provided 'com.facebook.Android:facebook-Android-sdk:4.0.1'

次に、メインモジュールであるmobile/build.gradleで、FacebookのSDKを次のようにコンパイルします。

compile 'com.facebook.Android:facebook-Android-sdk:4.0.1'

私はこのライブラリをインストールするためのガイドに従ってきました、そしてこれはあなたがそれをすることを意図している方法です。 ParseLoginUI/build.gradleファイル(それを提供するファイル)によってスローされたコンパイルを停止する警告が表示されます。

Warning:Project ParseLoginUI: provided dependencies can only be jars. com.facebook.Android:facebook-Android-sdk:aar:4.0.1 is an Android Library.

このライブラリのドキュメントには、次の修正が含まれています。

Gradle 1.1.0以降を使用している場合、「警告:プロジェクトParseLoginUI:依存関係はjarのみになります。com.facebook.Android:facebook-Android-sdk:aar:4.0.1はAndroidライブラリ "。これはAndroid gradleビルドツールの未解決の問題です。現在、回避策はgradle1.0.0を使用しています。

十分に公平ですが、この問題を解決するためだけに、gradle(現在v1.2.3を実行中)をダウングレードしたくありません。これを回避する方法、またはそれを行うためのより良い方法が必要です。

私の質問

ライブラリモジュールとメインモジュールの両方にFacebookSDKを含めるにはどうすればよいですか?

21
StuStirling

あなたはすでにそれがGradleの未解決の問題であると述べました。ライブラリモジュールとしてParseLoginUIを使用している場合。 ParseLoginUI自体のbuild.gradleファイルを変更するだけです。

    provided 'com.facebook.Android:facebook-Android-sdk:4.0.1'
                              to
    compile 'com.facebook.Android:facebook-Android-sdk:4.0.1'
7
sowmia

これを試してください: http://www.labouisse.com/how-to/2014/07/28/gradle-provided-scope-and-intellij/

彼は基本的に提供された実装を模倣します。

4
Rotemmiz

この問題 によると、Gradleプラグイン1.3.0-beta3で実行できるはずです。ビルドツールをバージョン23.0.0 rc1以上に更新する必要がある場合があります。

2
EpicPandaForce

試行錯誤の末、解決策を見つけました…

まず、AARはAndroidアーカイブライブラリを意味し、JARではありません。 facebook-Android-sdk-4.0.1.jarというものを検索しましたが、うまくいきませんでした。

秘訣は、Facebookコードをダウンロードしてモジュールとして追加することです。そうすることで、完全に機能し、ParseLoginUIでgradle1.2.3を使用できます。

ここに行く: https://developers.facebook.com/docs/Android/downloads

ダウンロード: https://developers.facebook.com/resources/facebook-Android-sdk-4.0.1.Zip 解凍します。

自分のプロジェクトに移動します。 -ParseLoginUIgradleでParseへの参照を削除します

FILE、NEW、IMPORTMODULEを押します。

解凍したZip内にあるfacebookというフォルダーを選択します。

そのモジュールを呼び出しますfacebook-Android-sdk-4.0.1.

次に、以下を使用して、parseloginuiにそのモジュールへの依存関係を追加します。

compile project(':facebook-Android-sdk-4.0.1’)

また、ダウンロードしたZipから新しいモジュールフォルダーにファイルをコピーする必要があります。ファイルはgradle.propertiesです。持っているもの:

Android_BUILD_MIN_SDK_VERSION=9

Android_BUILD_TARGET_SDK_VERSION=21

Android_BUILD_TOOLS_VERSION=21.1.2

Android_BUILD_SDK_VERSION=21

それで全部です。

SYNCHRONIZEを押して、指を交差させます。

私の場合、gradleとAndroid studioで数時間遊んだ後、作業しました。入手できたら教えてください。参照の問題がある場合(私が抱えていた)、FILE、PROJECT STRUCTUREを使用して、jar参照をモジュールに適切に追加します。 (手動で作成しましたが、解析参照の間違いである可能性があります。おそらく1つのパスまたは記号で、わかりません。Android studioのユーザーインターフェースを使用して問題を解決します)。ところで、ParseLoginUIで解析のバージョンを使用し、プロジェクトで別のバージョンを使用できます(Facebookバージョンではテストしていません)。

これは、ParseLoginUIgradleファイルにあるものです。

compile 'com.parse.bolts:bolts-Android:1.2.0'

compile 'com.Android.support:support-v4:22.0.0'

compile project(':facebook-Android-sdk-4.0.1')

compile files('libs/Parse-1.9.1.jar')

compile files('libs/ParseFacebookUtilsV4-1.9.1.jar')

そして、これは私のアプリのgradleにあるものです:

compile 'com.google.Android.gms:play-services:7.5.0'

compile project(':facebook-Android-sdk-4.0.1')

compile 'com.parse.bolts:bolts-Android:1.2.0'

compile files('libs/Parse-1.9.2/Parse-1.9.2.jar')

compile files('libs/Parse-1.9.2/ParseFacebookUtilsV4-1.9.2.jar')

compile project(':ParseLoginUI’)

注:Gradleバージョン2.4とAndroidプラグインバージョン1.2.3を使用しています。 FILE、PROJECT STRUCTURE、PROJECTでそれを選択します。

幸運を。

2
Ricardo

この構文を試すことができます:

提供(名前: ""、内線: 'aar')

メインのbuild.gradleに、提供するaarパッケージへのパスまたはMavenリポジトリがあることを確認してください。

1
bduhbya

書道(github.com/chrisjenx/Calligraphy)とgradle2.3.3でこの問題が発生しました。リポジトリをjcenter()からmavenCentral()に変更しましたが、問題ありません。

0
Golnar

その代わりに、

  1. ここ からParseLoginUIのクローンを作成します

  2. ParseLoginUIをモジュールとしてインポートし、これらをgradleに含めます

    compile project(':ParseLoginUI')
    compile 'com.facebook.Android:facebook-Android-sdk:4.0.1'
    

お役に立てれば

0