2013-06-02 20 views
11

Ich habe ein Bibliotheksprojekt. Ich möchte das neue Build-System von Android verwenden. Derzeit stoße ich auf ein ziemlich nerviges Szenario.Android Studio fehlende externe Abhängigkeiten

Ich habe meine Abhängigkeiten auf gradle.build definiert, aber sie erscheinen nie unter Externe Bibliotheken in Android Studio. Daher sind alle Verweise auf diese Bibliotheken als Fehler markiert.

Wenn ich gradle dependencies in der Befehlszeile ausführen zeigt es die vollständige Abhängigkeiten Struktur und kompiliert erfolgreich. Das Problem ist eindeutig mit Android Studio.

Ich habe versucht, die IDE/OS aber nichts neu zu starten.

Das ist mein 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

Dieses Problem auf neueste Android-Studio-Version (0.2.5)

Antwort

11

Leider ist in der aktuellen Version behoben zu sein scheint von Android Studio ist die IDE nicht vollständig in das Build-System (Gradle) integriert. Sie müssen die Bibliothek einmal in gradle.build für die Kompilierung und einmal über die GUI für die Code-Vervollständigung hinzufügen.

Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie "Open Module Settings". Bestätigen Sie die Warnung. Wählen Sie "Bibliotheken", "+" und fügen Sie die Bibliothek hinzu, die Sie verwenden. Im erscheinenden Dialog können Sie nach Maven suchen. Sie sollten Ihr libs Verzeichnis für das Glas auswählen. Fügen Sie die Bibliothek schließlich Ihrem Code-Modul hinzu. Wenn Ihre App MyApp ist, haben Sie wahrscheinlich MyApp und MyAppProject. Sie müssen es zu MyApp hinzufügen. (Sie können es wahrscheinlich auch direkt von der "Modules" -Seite hinzufügen.)

Um zusätzlich zu bekommen, das Glas zu Ihrer apk hinzufügen, nehmen Sie die folgenden Änderungen an Ihrem Grad-Datei. Ersetzen:

compile 'org.jsoup:jsoup:1.6.1' 

und ähnlich mit

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

Jetzt sollte es funktionieren.

+0

Sie Antwort klingt richtig. Wenn ich Zeit habe, es zu testen, werde ich es akzeptieren. Übrigens, ich habe ein Problem mit AOSP Tracker geöffnet. – Axxiss

+0

Es ist jetzt der 1. August, stimmt das noch mit Android Studio 0.2.2? –

+3

Wie kann ich Bibliotheken in externen Bibliotheken auf build.gradle finden? – Akexorcist

13

Sie können "Extras-> Android-> Projekt mit Gradle-Dateien synchronisieren" verwenden. Es wird die Abhängigkeiten auflösen, herunterladen und zu externen Bibliotheken hinzufügen.

+3

Dies ist jetzt die richtige Antwort. –

0

Ich kommentierte folgende Zeile aus build.gradle Datei und es begann zu arbeiten.

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

enter image description here

Bisher trocken Erstellungsoperation erfolgreich sein würde, aber wenn ich auf dem Gerät laufen würde versuchen würde es Fehler seines

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