2016-04-07 11 views
7

aarファイルに組み込まれたライブラリプロジェクトcameraBarcodeScannerを書きました。このライブラリは、次の依存関係は、そのbuild.gradleに定義されています:Gradle:download付属のaarライブラリの依存関係

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.1.0' 
compile 'com.google.zxing:core:3.2.1' 
compile 'com.journeyapps:zxing-android-embedded:[email protected]' 
} 

私はそうのようなテスト・アプリケーションでライブラリを使用しています:

dependencies { 
compile(name: 'cameraBarcodeScanner-release', ext: 'aar') 
} 

Gradleでは、アプリケーションを検索し、構築することができますそれ。しかし、実行時には、アンドロイドはzxing-android-embeddedにあるクラスを見つけることができません。それは私には、そのgradleは、ライブラリ - プロジェクトの依存関係をダウンロードしていないようです。 私も試してみました:

dependencies { 
compile(name: 'cameraBarcodeScanner-release', ext: 'aar'){ 
    transitive = true 
} 

しかし、これはどちらか助けていません。ライブラリの依存関係をなんらかの方法で公開する必要がありますか?どのようにライブラリを使用して、gradleに依存関係をダウンロードさせるのですか?

ありがとうございます!

答えて

6

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

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

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

+0

あなたの答えをありがとう。私は会社のレポにアップロードしようとします。 – battlepope

+1

あなたの答えが問題を解決したというフィードバックを送ってください。ライブラリのbuild.gradleで、必要なすべての依存関係をpom.xmlに書き込んで、結果を私たちのリポジトリにアップロードするようにしたら、うまくいきました。 – battlepope

+0

はい、私は 'flatDir'を使ってaarを追加した後で、ライブラリモジュールをすべてアプリケーションモジュールに追加した場合にのみ起動することができます – mohax

関連する問題