2013-06-20 13 views
21

Obecnie pracuję w Eclipse. Chcę przeprowadzić migrację do systemu Android Studio, ale najpierw muszę to najpierw zrozumieć: Jak utworzyć słoik dla mojego projektu przy użyciu nowego systemu budowania systemu Android?System Android Gradle Build: Utwórz Jar Not Library

Mój projekt jest skonfigurowany jako biblioteka, ale w projekcie są tylko pliki Java. Nie potrzebuję ani nie chcę eksportować tego jako biblioteki. Chcę wyeksportować pliki jako .jar, aby można je było łatwo przenieść do innego projektu.

Aktualizacja Oto mój plik gradle. Nie mogę dodać linii apply plugin java, ponieważ jest ona niezgodna z wtyczką Androida. Zadanie jar jest już zawarte w pluginach dla systemu Android.

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

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

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 
} 

sourceSets { 
    main { 
     java { 
      srcDir 'src/main/java' 
     } 
    } 
} 
task jar(type: Jar) { 
    from sourceSets.main.java 
} 

biegnę skrypt jako: gradle clean jar

Kiedy uruchomić zadania, nic się nie dzieje ... Dlaczego? czego mi brakuje?

Aktualizacja 2

Poniżej jest nowy Gradle plik build, które używam. Zwróć uwagę na zmianę wersji gradle z powodu najnowszej aktualizacji Android Studio. Nawet z prostym clean build pojawia się ten błąd: Project directory '<my_workspace_path>\Core2Project\build.gradle' is not a directory.Ten błąd występuje tylko w studio kompilacji. Nie, kiedy uciekam z IDE. Wpadłem na ten sam problem z innym projektem. Okazało się, że dostanę ten błąd, kiedy określę nazwę pliku, który ma być użyty w studio budowania.

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

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

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 

    sourceSets { 
     main { 
      java { 
       srcDir 'src/main/java' 
      } 
     } 
    } 
} 


task jar(type: Jar) { 
    from android.sourceSets.main.java 
} 

Odpowiedz

16

z nowszymi wersjami Gradle i Android plugin Gradle, wystarczy dodać następujące wpisy do build.gradle:

task jar(type: Jar) { 
    from android.sourceSets.main.java.srcDirs 
} 

i uruchomić gradle clean compileReleaseJava jar

W starszych wersjach wtyczki gradle Twój element sourceSets musi znajdować się wewnątrz android:

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 

    sourceSets { 
     main { 
      java { 
       srcDir 'src/main/java' 
      } 
     } 
    } 
} 

Następnie zadanie jar musiałby odwoływać android.sourceSets:

task jar(type: Jar) { 
    from android.sourceSets.main.java 
} 
+0

Chcę powiedzieć, że masz rację, ale nie mogę już zbudować mojego projektu. Tylko prosta "czysta kompilacja" daje mi błąd. Plik 'build.gradle' w ścieżce błędu jest tym, który wskazuję, aby uruchomić zadania. Brak zmian tutaj. 'Katalog projektu ' \ Core2Project \ build.gradle' nie jest katalogiem." – Sababado

+0

Czy masz najnowszą wersję wtyczki gradle? powinieneś być w 'classpath 'com.android.tools.build:gradle:0.5. +'' teraz – vinc3m1

+0

Tak, właśnie stworzyłem nowy projekt i skopiowałem katalog src, a także 'android' i' jar' z gradle. Mój skrypt kompilacji znajduje się w pliku gradacji modułu, a nie w pliku gradacji projektu – Sababado

-2

do 'jar' zadanie to znaczy tutaj jest wprowadzana przez wtyczkę java. można zastosować Gradle wtyczki Java za pomocą

apply plugin:'java' 

Sprawdźcie w rozdziale o wtyczki Java w Gradle userguide na http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html#N103C6, aby uzyskać więcej informacji na temat wtyczki Java.

okrzyki,

René

+0

Próbowałem tego samego błędu :( – Sababado

+0

że zaskakujące jak biblioteka Java z pewnością dodaje zadania jar. możesz podać pełny plik kompilacji rootproject. Co masz na myśli mówiąc o "użyciu" zadania JAR? wstrzykiwanie go z wiersza poleceń? –

+0

Przepraszam za opóźnienie, zaktualizowałem swoje pytanie skryptem budowania – Sababado

Powiązane problemy