2013-06-02 12 views
11

Ho un progetto di libreria. Voglio usare il nuovo sistema di build di Android. Attualmente sto incontrando uno scenario abbastanza fastidioso.Android Studio manca di dipendenze esterne

Ho le mie dipendenze definite su gradle.build ma non vengono mai visualizzate in Librerie esterne in Android Studio. Quindi tutti i riferimenti a quelle librerie sono contrassegnati come errori.

Quando corro gradle dependencies sulla riga di comando, mostra l'albero delle dipendenze completo e viene compilato correttamente. Il problema è chiaramente con Android Studio.

Ho provato a riavviare l'IDE/OS ma nulla.

Questo è il mio gradle.build

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.4.1' 
    } 
} 

apply plugin: 'android-library' 

apply plugin: 'idea' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'junit:junit:4.11' 
    compile 'org.robolectric:robolectric:2.1:jar-with-dependencies' 

    compile 'com.google.android:android:4.1.1.4' 
    compile 'com.google.android:support-v4:r7' 

    compile 'info.cukes:cucumber-java:1.1.3' 
    compile 'info.cukes:cucumber-junit:1.1.3' 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     versionCode 1 
     versionName "0.3-SNAPSHOT" 
     minSdkVersion 15 
     targetSdkVersion 17 
    } 
} 

UPDATE

Questo problema sembra essere risolto sulla versione più recente Studio di Android (0.2.5)

risposta

11

Purtroppo, nella versione attuale di Android Studio, l'IDE non è completamente integrato con il sistema di generazione (gradle). È necessario aggiungere la libreria una volta in gradle.build per la compilazione e una volta tramite la GUI per il completamento del codice.

Fare clic con il tasto destro del mouse sul progetto, selezionare "Impostazioni modulo aperto". Riconosci l'avvertimento. Seleziona "Librerie", "+" e aggiungi la libreria che stai utilizzando. Puoi cercare le librerie su Maven nella finestra di dialogo che appare. Dovresti selezionare la tua dir libs per il barattolo. Infine, aggiungi la libreria al modulo del tuo codice. Se la tua app è MyApp, probabilmente hai MyApp e MyAppProject. Devi aggiungerlo a MyApp. (Probabilmente puoi anche aggiungerlo direttamente dalla pagina "Moduli".)

Per aggiungere anche il gradle per aggiungere il jar al tuo apk, apportare le seguenti modifiche al file di valutazione. Sostituire:

compile 'org.jsoup:jsoup:1.6.1' 

e simili con

compile files('libs/jsoup-1.6.1.jar') 

ora, dovrebbe essere tutto il lavoro.

+0

È risposta suona corretta. Quando avrò il tempo di testarlo, lo accetterò. A proposito, ho aperto un problema su AOSP tracker. – Axxiss

+0

Ora è il 1 ° agosto, è ancora vero con Android Studio 0.2.2? –

+3

Come posso trovare le librerie in Librerie esterne su build.gradle? – Akexorcist

13

È possibile utilizzare 'Strumenti-> Android-> Progetto di sincronizzazione con file Gradle'. Risolverà le dipendenze, scaricherà e le aggiungerà alle librerie esterne.

+3

Questa è la risposta giusta ora. –

0

Ho commentato la riga seguente dal file build.gradle e ha iniziato a funzionare.

//compile files('libs/android-support-v4.jar') 

enter image description here

In precedenza il funzionamento a secco costruzione avrebbe avuto successo, ma quando vorrei provare a correre sul dispositivo non ci sarebbe errore

UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; 
Problemi correlati