2016-04-28 20 views
18

私たちは、基本的に私たちのAPIのために、私たちの外部開発者の生活を楽にするライブラリを作っています。ローカルaarライブラリの一時的な依存関係

私たちは新しいライブラリプロジェクトを作成し、Retrofitとその他のライブラリを依存関係にしました。

dependencies { 
    compile 'com.android.support:appcompat-v7:23.3.0' 
    compile 'com.google.code.gson:gson:2.6.2' 
    compile 'com.squareup.retrofit2:retrofit:2.0.1' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.1' 
    compile 'com.squareup.okhttp3:okhttp:3.2.0' 
} 

これをビルドすると、aarというファイルが生成されます。

aarというファイルをlibsディレクトリに置き、それを依存関係に設定すると、同じ依存関係をユーザーのbuild.gradleファイルに入れなければなりません。それは図書館から取るべきですよね?

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

dependencies { 
    compile(name: 'ourlibrary', ext: 'aar') { 
     transitive = true; 
    } 
} 

どうtransitive = true作品を作るには?

+0

まったく同じ問題を解決する方法を探していると、どのようにしてこの問題が解決しましたか? – yongsunCN

+0

こんにちは、あなたは問題を解決することができますか? – Shrikant

答えて

30

AARファイルは、ネストされた(またはtransitive)の依存関係にが含まれていないと、ライブラリで使用される依存関係を記述したPOMファイルを持っていません。

つまり、flatDirリポジトリを使用してaarファイルをインポートする場合は、プロジェクトでも依存関係を指定する必要があります。

transitive=trueを追加しても、上記の理由で問題が解決されません。

mavenレポジトリ(あなたはプライベートまたはパブリックメイヴンレポにライブラリを公開する必要があります)を使用すると、同じ問題は発生しません。
この場合、gradleは依存関係リストを含むpomファイルを使用して依存関係をダウンロードします。

+0

あなたは "あなたのプロジェクトにも依存関係を指定しなければなりません"ということを詳しく述べることができますか? – TejjD

+1

最後にここに来ました。あなたは「過渡的な」仕事をするためにそれをどこかに公開しなければならないようです。 –

+1

私はこの日を過ごしました...ありがとう! – suomi35

関連する問題