Ich versuche, ein Projekt von Eclipse zu migrieren, aber nichts, was ich versucht habe, funktioniert. In Eclipse habe ich 3 Projekte (2 Android App-Projekte und 1 Android Library-Projekt). Die 2 App-Projekte hängen vom Bibliotheksprojekt ab. Wenn ich den Gradle-Export mache, bekomme ich 3 Projekte, die nicht funktionieren. Ich bin offen für eine Umstrukturierung des Projekts, habe jedoch keine Dokumentation darüber gefunden, wie dies getan werden sollte.
Gibt es eine Möglichkeit, die drei Projekte, die Eclipse exportiert, zusammenzubringen? Bin ich besser dran, Dinge umzustrukturieren, und wenn ja, ist die Dokumentation dafür, wie dies getan werden soll?
Aktualisieren
Ich habe das gesamte Projekt auf GitHub hochgeladen https://github.com/ RegardTheCode/android- studio- library- example
Update 1
Basierend auf den Vorschlägen von Padma Kumar habe ich dies versucht.
- Erstellen Sie ein neues Projekt mit dem Namen
MyApp
- Klicken
File > New Module
, wählenAndroid Library
und benennen Sie esMyLib
- Klicken
Build > Make Project
Der Build schlägt mit diesem Fehler fehl
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.
Ich habe dann package
dem Manifest ein Attribut hinzugefügt , das es erstellt
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mylib" >
Nach dem Erstellen erhalte ich diesen Fehler
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
Das Hinzufügen von Abhängigkeiten scheint keine Auswirkungen auf den Fehler zu haben. Weiter von oben
- Klicken
File > Project Structure > Modules > MyApp-MyApp
- Wechseln Sie zu
Dependencies
Tab - Klicken
+ > Module Dependency
und auswählenMyLib
- Klicken Sie auf
Apply
undOK
- Klicken
Build > Make Project
Update 2
Basierend auf den Vorschlägen von Ethan bekommen wir hier
Das 2-Teil-Projekt build.gradle
scheint alle richtigen Teile zu haben und der einzige Unterschied ist, dass die folgende Plugin-Zeile die ist MyApp/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
}
}
Das Root-Projekt build.gradle
war leer, also habe ich die beiden Projekte wie folgt hinzugefügt
dependencies {
compile project(":MyLib")
compile project(":MyApp")
}
Ich bekomme jetzt diesen Fehler beim Bauen
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.
Update 3
Vielen Dank an Ethan für die Lösung.
compile project(':SubProjects:MyLib')
Zum hinzufügenMyLib/build.gradle
compile files('libs/android-support-v4.jar')
Aus dem entfernenMyLib/build.gradle
- Schließen Sie das Projekt und importieren Sie das Stammprojekt aus gradle
Update 4
Ab 0.1.2 können Sie jetzt compile "com.android.support:support-v4:13.0.0"
anstelle von einschließen compile files('libs/android-support-v4.jar')
. Da es jetzt von mavin kommt, können Sie dies problemlos in mehrere Projekte aufnehmen.
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')
}
Update 5
Ab 0.1.3 gibt es jetzt eine Schaltfläche "Projekt synchronisieren" in der Symbolleiste. Sie können darauf klicken, anstatt Ihr Projekt erneut zu .gradle
importieren, nachdem Sie Änderungen an Dateien vorgenommen haben.
compile 'com.google.android:support-v4:r6'
zu jedem Ihrer Projekte hinzufügen und das Maven-Plugin (wie im Beispiel build.gradle unten) anstelle des compile files('libs/android-support-v4.jar')
Gradles erkennt, dass beide Projekte dasselbe enthalten und es nur einmal enthalten.