Jak zbudować bibliotekę Android z Android Studio i gradle?

Próbuję migrować projekt z Eclipse, ale nic, czego próbowałem, nie działa. W Eclipse mam 3 projekty (2 projekty aplikacji na Androida i 1 projekt biblioteki Android). Projekty 2 aplikacji zależą od projektu biblioteki. Kiedy wykonuję eksport stopniowy, otrzymuję 3 projekty, które nie działają. Jestem otwarty na restrukturyzację projektu, ale nie znalazłem żadnej dokumentacji dotyczącej tego, jak należy to zrobić.

Czy istnieje sposób, aby trzy projekty, które eksportują Eclipse, współpracowały ze sobą? Czy jestem lepszy od restrukturyzacji, a jeśli tak, to jak to zrobić?

Aktualizacja

Przesłałem cały projekt do GitHubhttps://github.com/respectTheCode/android-studio-library-example

Aktualizacja 1

Na podstawie sugestii Padmy Kumara próbowałem tego.

Utwórz nowy projekt o nazwieMyAppKliknijFile > New Module, wybierzAndroid Library i nazwij toMyLibKliknijBuild > Make Project

Kompilacja kończy się niepowodzeniem z tym błędem

Module "MyLib" was fully rebuilt due to project configuration/dependencies changes
Compilation completed with 1 error and 0 warnings in 19 sec
1 error
0 warnings
/.../MyApp/MyLib/build/bundles/debug/AndroidManifest.xml
Gradle: <manifest> does not have package attribute.

Potem dodałempackage atrybut do manifestu, który go tworzy

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mylib" >

Po zbudowaniu otrzymuję ten błąd

Module "MyApp" was fully rebuilt due to project configuration/dependencies changes
Compilation completed with 2 errors and 0 warnings in 13 sec
2 errors
0 warnings
/.../MyApp/MyLib/src/main/java/com/example/mylib/MainActivity.java
Gradle: package R does not exist
Gradle: package R does not exist

Dodanie zależności nie wydaje się mieć żadnego wpływu na błąd. Kontynuacja z góry

KliknijFile > Project Structure > Modules > MyApp-MyAppPrzełącz naDependencies PatkaKliknij+ > Module Dependency i wybierzMyLibKliknijApply iOKKliknijBuild > Make Project

Aktualizacja 2

Na podstawie sugestii Ethana właśnie tam się znajdujemy

Podprojekt 2build.gradle wydają się mieć wszystkie poprawne części, a jedyną różnicą jest linia wtyczek poniżejMyApp/build.gradle.

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    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
    }
}

Projekt głównybuild.gradle było puste, więc dodałem dwa takie projekty

dependencies {
    compile project(":MyLib")
    compile project(":MyApp")
}

Teraz otrzymuję ten błąd podczas budowania

Gradle:
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/kevin/GitHub/AppPress/MyApp/build.gradle' line: 2
* What went wrong:
A problem occurred evaluating root project 'MyApp'.
> Could not find method compile() for arguments [project ':MyLib'] on root project 'MyApp'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Aktualizacja 3

Wielkie dzięki Ethan za rozwiązanie tego problemu.

Dodajcompile project(':SubProjects:MyLib') doMyLib/build.gradleUsunąćcompile files('libs/android-support-v4.jar') zMyLib/build.gradleZamknij projekt i zaimportuj projekt główny z poziomu

Aktualizacja 4

Od 0.1.2 możesz teraz dołączyćcompile "com.android.support:support-v4:13.0.0" zamiastcompile files('libs/android-support-v4.jar'). Ponieważ teraz pochodzi od mavina, możesz bez problemu włączyć go do wielu projektów.

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
}

apply plugin: 'android'

dependencies {
    compile "com.android.support:support-v4:13.0.0"

    compile project(':SubProjects:MyLib')
}

Aktualizacja 5

Od wersji 0.1.3 na pasku narzędzi znajduje się teraz przycisk „Synchronizuj projekt”. Możesz go kliknąć, zamiast ponownie importować projekt po wprowadzeniu zmian.gradle pliki.

questionAnswers(4)

yourAnswerToTheQuestion