2013-09-01 9 views
37

Possiamo trovare alcune librerie open source molto buone per Android. Voglio sapere qual è il modo migliore per integrarli ai nostri progetti in Android Studio. Ecco alcuni metodi di base:Il modo migliore per integrare la libreria di terze parti nello studio Android

  • Copia il codice sorgente ei file di risorse nel nostro progetto. Abbiamo bisogno di cambiare molti codici (il nome del pacchetto e il nome in xml, ecc.)
  • Se sono forniti file jar, creo solo la cartella libs per il mio progetto e copio i file jar all'interno. E aggiungi il file jar nelle dipendenze delle impostazioni del modulo. Ma sfortunatamente ho ricevuto molti messaggi di errore come "Gradle: Package com.google.gson non esiste".

Esiste una regola generale per aggiungere file di origine o jar di terze parti in un progetto Android Studio esistente? Grazie

+0

Ho trovato un post valido per l'integrazione di file jar. http://stackoverflow.com/questions/16608135/android-studio-add-jar-as-library?rq=1 Ma per alcuni progetti con alcune risorse il file non fornisce un file jar. –

+1

Sì, quello che ha detto bagusflyer .. –

risposta

51

Preferisco utilizzare il repository centrale per la gestione delle dipendenze. Così, per gson 2.3 dipendenza si dovrebbe aggiungere alla build.gradle di file:

  • specificare che si desidera utilizzare repository centrale Maven per la vostra dipendenza

    repositories {jcenter()}

  • Aggiungi compile dipendenza gson 2.6.2

    dependencies {compile 'com.google.code.gson:gson:2.6.2'}

Android Studio e il tuo server CI dovrebbero facilmente creare il tuo progetto ora. E puoi continuare lo sviluppo di app.

Io preferisco usare repository centrale per la gestione delle dipendenze, perché:

  • più facile gestione dell'ambito - alcune librerie sono solo per il test, alcuni dovrebbero essere inclusi per apk e alcuni sono parte della gestione dell'ambiente (come Android.jar stesso)
  • gestione delle dipendenze transitive più semplice - è piuttosto difficile raccogliere le dipendenze delle librerie e se si utilizza "jar-with-dependencies" si potrebbe ottenere l'errore "classe già aggiunta" durante il dexing
  • repository più leggero e più semplice aggiornamento delle dipendenze

Esempi:

  • Robolectric vaso dovrebbe essere utilizzato solo per unit testing e non dovrebbe essere parte della stessa apk
  • Repository è pulito da diverso fo Lumber con vasi, il checkout richiede molto meno. Non ha bisogno di scaricare e sostituire i vecchi vasi con nuovi vasi

dovrei notato:

  • Non molte librerie sono in Maven centrale e si dovrebbe fare qualche sforzo per usarli modo nel progetto
  • Si potrebbe facilmente ottenere l'errore "classe già aggiunta" durante il dexing con approccio al repository centrale
  • È possibile mescolare l'uso delle dipendenze dal repository centrale e dalla cartella lib, ma preferisco utilizzare solo un modo per semplicità
+0

È così bello. Ma come posso sapere quale libreria si trova nel repository centrale? –

+0

Puoi cercarlo http://search.maven.org/ –

+0

@EugenMartynov: Ci sono due file build.gradle nel mio progetto. Uno nella root del progetto e l'altro nella directory app. Quale file inserire nella sezione 'repositories' e' dependencies'? – tonga

12
  1. Mettere il vaso GSON (nel mio caso, gson-2.2.4.jar) nelle librerie cartella
  2. Fare clic destro di esso e premere 'Aggiungi come libreria'
  3. Assicurarsi che compile files('libs/gson-2.2.4.jar') è nel file
  4. Do build.gradle una build pulita (probabilmente puoi farlo bene in Android Studio, ma per essere sicuro di aver navigato in un terminale nella cartella principale della mia app e aver digitato gradlew clean. Sono su Mac OS X, il comando potrebbe essere diverso sul tuo sistema

Questa serie di passaggi è stata presa da Android Studio: Add jar as library? e non è la mia risposta originale. Li sto postando qui di nuovo, perché la tua domanda è stata la terza nei risultati di ricerca su Google quando ho cercato questo stesso argomento. Quindi, copiare.

Tutti i crediti a chi ha scritto i passaggi.

+0

A quanto pare ora puoi trascinare il jar da qualsiasi punto della cartella libs del tuo progetto e questo viene aggiunto automaticamente al percorso di build. Ho lavorato bene per me, ma YMMV. –

3

Scarica & copiare il file nella cartella .jarlibs quindi aggiungendo una riga a build.gradle:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this 
    compile 'com.google.code.gson:gson:2.3.4' ----------> I added this one 
} 

Non dimenticare di cliccare su "Sincronizza ora"

sto usando Android Studio 1.1. 0

1

Scaricare e copiare il jar nella cartella libs, quindi aggiungere quanto segue al file app.gradle e SYNC.

dependencies { 
    compile 'com.google.code.gson:gson:{version_you_need}' 
} 

repositories{ 
    flatDir{ 
     dirs 'libs' 
    } 
} 
Problemi correlati