2016-01-27 4 views
11

Ho un'applicazione Android composta da più progetti. Uno di questi progetti è un progetto di app che estende solo l'oggetto Application.Gradle in cerca di un errore nella cartella lib del progetto errato

All'interno di build.gradle per quel progetto di app, aggiungo altri progetti come dipendenze.

Ho appena creato un nuovo modulo per ospitare un SDK (aar) che voglio usare. L'ho anche aggiunto al build.gradle del mio progetto dell'app.

compile project(':newmodule-thesdk') 

All'interno della cartella libs di newmodule-thesdk, ho aggiunto il file aar. Lo chiameremo thesdk.aar.

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

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

Quando si tenta di sincronizzare Gradle, la sincronizzazione non è riuscito perché thesdk-1.0 non esiste nella cartella librerie della mia app progetto. Perché lo sta cercando lì? Perché non lo trova solo nel progetto newmodule-thesdk?

+0

In quale build.gradle ha aggiunto il flatDir e la dipendenza aar? –

+0

@GabrieleMariotti newmodule-thesdk – Andrew

+0

Perché stai creando un modulo per alloggiare un .aar? Ha un altro obiettivo? – meynety

risposta

3

Appare me la soluzione del problema necessaria per effettuare le seguenti operazioni in build.gradle del mio progetto di app.

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

ho avuto il problema simile e ho appena cambiato la mia xxx.aar a xxx-NNaar, nel tuo caso thesdk.aar per thesdk-1.0.aar e poi ha funzionato bene

+0

Questa sembra non essere la soluzione, ma è abbastanza importante controllare i nomi –

0

Non vi resta che modificare il codice in questo modo

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

Tenete a mente che il file deve esistere!

0

u potrebbe fare 2 si avvicina

1) Come già detto che:

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

si può fare in questo modo

2) è possibile effettuare un nuovo progetto Gradle con incluso il sdk e fa riferimento al vecchio progetto di codice in esso.

e quindi fare riferimento vecchio progetto, quando u non vuole includere l'SDK e quando si desidera includere l'SDK di riferimento del nuovo progetto Gradle