2013-06-02 19 views
11

Mam projekt biblioteczny. Chcę korzystać z nowego systemu kompilacji Androida. Obecnie napotykam dość irytujący scenariusz.Android Studio brak zewnętrznych zależności

Mam zależności zdefiniowane na gradle.build, ale nigdy nie pojawiają się w bibliotekach zewnętrznych w Android Studio. Stąd wszystkie odniesienia do tych bibliotek są oznaczone jako błędy.

Po uruchomieniu gradle dependencies w wierszu poleceń pokazuje pełne drzewo zależności i pomyślnie się kompiluje. Problem wyraźnie dotyczy Android Studio.

Próbowałem zrestartować IDE/OS, ale nic.

To mój 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

Kwestia ta wydaje się być ustalona na najnowszej wersji Android Studio (0.2.5)

Odpowiedz

11

Niestety w obecnej wersji Android Studio, IDE nie jest w pełni zintegrowany z systemem kompilacji (gradle). Musisz dodać bibliotekę raz w gradle.build do kompilacji, a raz przez GUI do uzupełnienia kodu.

Kliknij prawym przyciskiem myszy na projekcie, wybierz "Otwórz ustawienia modułu". Potwierdź ostrzeżenie. Wybierz "Biblioteki", "+" i dodaj bibliotekę, której używasz. Możesz wyszukiwać biblioteki w Maven w wyświetlonym oknie dialogowym. Powinieneś wybrać swój katalog libs dla słoika. Na koniec dodaj bibliotekę do modułu swojego kodu. Jeśli Twoja aplikacja to MyApp, prawdopodobnie masz MyApp i MyAppProject. Musisz dodać go do MyApp. (Możesz prawdopodobnie dodać go bezpośrednio ze strony "Moduły".)

Aby dodatkowo uzyskać gradle, aby dodać słoik do apk, wprowadź następujące zmiany do pliku oceny. Wymienić:

compile 'org.jsoup:jsoup:1.6.1' 

i podobna

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

Teraz wszystko powinno działać.

+0

Państwo odpowiedź brzmi poprawna. Kiedy będę miał czas, aby to przetestować, zaakceptuję to. Przy okazji otworzyłem problem na trackerze AOSP. – Axxiss

+0

Czy jest już 1 sierpnia, czy nadal jest tak w Androidzie 0.2.2? –

+3

Jak mogę zlokalizować biblioteki w zewnętrznych bibliotekach na build.gradle? – Akexorcist

13

Możesz użyć "Narzędzia-> Android-> Synchronizacja z plikami Gradle". Rozwiąże zależności, pobierze i doda je do zewnętrznych bibliotek.

+3

To jest teraz właściwa odpowiedź. –

0

Skomentowałem następujący wiersz z pliku build.gradle i zaczęło działać.

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

enter image description here

Wcześniej operacja sucha budować uda, ale kiedy próbuję uruchomić na urządzeniu nie będzie błędu

UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; 
Powiązane problemy