2016-04-07 14 views
7

Ich habe ein Bibliotheksprojekt cameraBarcodeScanner geschrieben, das in eine aar-Datei eingebaut ist. Diese Bibliothek hat die folgenden Abhängigkeiten in seiner build.gradle definiert:Gradle: download Abhängigkeiten der mitgelieferten aar-Bibliothek

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]' 
} 

Ich bin mit der Bibliothek in einer Testanwendung wie folgt:

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

Gradle findet die Anwendung und ist in der Lage zu bauen es. Zur Laufzeit ist Android jedoch nicht in der Lage, die Klassen zu finden, die sich in zxing-android-embedded befinden. Es scheint mir, dass Gradle die Abhängigkeiten des Bibliotheksprojekts nicht herunterlädt. ich auch versucht:

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

Aber diese entweder nicht helfen. Muss ich die Abhängigkeiten der Bibliothek irgendwie aufdecken? Wie würdest du eine Bibliothek benutzen und die Abhängigkeiten herunterladen?

Vielen Dank im Voraus!

Antwort

6

Die aar Datei enthält nicht die verschachtelt (oder transitive) Abhängigkeiten und haben keine pom-Datei, die die Abhängigkeiten von der Bibliothek verwendet wird, beschreibt.

Wenn Sie eine AAR-Datei mit einem flatDir Repo importieren, müssen Sie die Abhängigkeiten auch in Ihrem Projekt angeben.

Sie sollten ein Maven Repository verwenden (Sie müssen die Bibliothek in einem privaten oder öffentlichen Maven Repo veröffentlichen), Sie werden nicht das gleiche Problem haben.
In diesem Fall lädt Gradle die Abhängigkeiten mit der Pom-Datei herunter, die die Abhängigkeitenliste enthält.

+0

Danke für Ihre Antwort. Ich werde versuchen, es in das Repo unseres Unternehmens hochzuladen. – battlepope

+1

Ich wollte Ihnen nur Feedback geben, dass Ihre Antwort das Problem gelöst hat. Nach einigem Herumfummeln in den build.library der Bibliothek, um gradle die pom.xml mit allen benötigten Abhängigkeiten zu füllen und das Ergebnis in unser Repo hochzuladen, hat es funktioniert! – battlepope

+0

Ja, nachdem ich aar über 'flatDir' hinzugefügt habe, kann ich die App nur dann starten, wenn ich alle Bibliotheksabhängigkeiten zu den Abhängigkeiten der App-Module hinzufüge – mohax

Verwandte Themen