2016-01-27 3 views
11

Ich habe eine Android-Anwendung, bestehend aus mehreren Projekten. Eines dieser Projekte ist ein App-Projekt, das lediglich das Application-Objekt erweitert.Gradle auf der Suche nach aar in falschen lib-Ordner des Projekts

In der Build.gradle für dieses App-Projekt, ich füge andere Projekte als Abhängigkeiten hinzu.

Ich habe gerade ein neues Modul erstellt, um ein SDK (aar) aufzunehmen, das ich verwenden möchte. Ich habe es auch dem build.gradle meines App-Projekts hinzugefügt.

Im Ordner libs von newmodule-thesdk habe ich die aar-Datei hinzugefügt. Wir nennen es thesdk.aar.

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

dependencies { 
    compile(name:'thesdk-1.0', ext:'aar') 
} 

Wenn ich versuche, gradle zu synchronisieren, schlägt die Synchronisierung weil thesdk-1.0 nicht im libs Ordner meiner App Projekt vorhanden sind. Warum sucht es dort? Warum finden Sie es nicht nur im Projekt newmodule-thesdk?

+0

, in dem das sdk Referenz enthalten sein sollen build.gradle haben Sie den flatDir hinzufügen und die aar Abhängigkeit? –

+0

@GabrieleMariotti newmodule-thesdk – Andrew

+0

Warum erstellen Sie ein Modul für die Unterbringung eines .aar? Hat es ein anderes Ziel? – meynety

Antwort

3

Es scheint, das Problem zu lösen mich erforderlich, um den folgend in tun Das build.gradle meines App-Projekts.

repositories { 
     flatDir { 
      dirs project(':newmodule-thesdk').file('libs') 
     } 
    } 
0

hatte ich das ähnliche Problem und Ich habe gerade meine xxx.aar zu xxx-NNaar, funktionierte es in Ihrem Fall thesdk.aar zu thesdk-1.0.aar und dann fein

+0

Dies scheint nicht die Lösung zu sein, aber es ist ziemlich wichtig, die Namen zu überprüfen –

0

Sie müssen nur Ihren Code

dependencies { 
    compile fileTree(include: ['thesdk-1.0.aar'], dir: 'libs') 
} 

Denken Sie daran, auf diese Weise ändern, dass die Datei existieren sollten!

0

u2 tun könnte nähert sich

1) Wie Sie es schon gesagt:

repositories { 
     flatDir { 
      dirs project(':newmodule-thesdk').file('libs') 
     } 
    } 

es kann auf diese Weise durchgeführt werden

2) ein neues gradle Projekt machen können, einschließlich die SDK und referenzieren das alte Code-Projekt darin.

und dann alte Projekt verweisen, wenn u das sdk einschließen möchten nicht, und wenn Sie das neue Projekt gradle

Verwandte Themen