Saya mencoba untuk memigrasi proyek dari Eclipse tetapi tidak ada yang saya coba. Di Eclipse saya memiliki 3 proyek (2 proyek aplikasi android dan 1 proyek perpustakaan android). 2 proyek aplikasi tergantung pada proyek perpustakaan. Ketika saya melakukan ekspor gradle saya mendapatkan 3 proyek yang tidak berhasil. Saya terbuka untuk merestrukturisasi proyek tetapi belum menemukan dokumentasi tentang bagaimana ini harus dilakukan.
Apakah ada cara untuk membuat 3 proyek yang ekspor Eclipse bekerja bersama? Apakah saya lebih baik merestrukturisasi hal-hal dan jika demikian adalah dokumentasi untuk bagaimana ini harus dilakukan?
Memperbarui
Saya telah mengunggah seluruh proyek ke GitHub https://github.com/respectTheCode/android-studio-library-example
Perbarui 1
Berdasarkan saran dari Padma Kumar inilah yang saya coba.
- Buat Proyek baru yang disebut
MyApp
- Klik
File > New Module
, pilihAndroid Library
dan beri namaMyLib
- Klik
Build > Make Project
Build gagal dengan kesalahan ini
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.
Saya kemudian menambahkan package
atribut ke manifes membuatnya
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mylib" >
Setelah membangun saya mendapatkan kesalahan ini
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
Menambahkan ketergantungan tampaknya tidak berdampak pada kesalahan. Melanjutkan dari atas
- Klik
File > Project Structure > Modules > MyApp-MyApp
- Beralih ke
Dependencies
Tab - Klik
+ > Module Dependency
dan pilihMyLib
- Klik
Apply
danOK
- Klik
Build > Make Project
Perbarui 2
Berdasarkan saran dari Ethan di sinilah kita dapatkan
Sub proyek 2 build.gradle
tampaknya memiliki semua bagian yang benar dan satu-satunya perbedaan adalah baris plugin di bawah ini 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
}
}
Proyek root build.gradle
kosong jadi saya menambahkan dua proyek seperti ini
dependencies {
compile project(":MyLib")
compile project(":MyApp")
}
Saya sekarang mendapatkan kesalahan ini saat membangun
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.
Perbarui 3
Terima kasih banyak Ethan untuk menyelesaikan ini.
- Tambahkan
compile project(':SubProjects:MyLib')
keMyLib/build.gradle
- Hapus
compile files('libs/android-support-v4.jar')
dariMyLib/build.gradle
- Tutup proyek dan Impor proyek root dari gradle
Perbarui 4
Pada 0.1.2 Anda sekarang bisa memasukkan compile "com.android.support:support-v4:13.0.0"
bukan compile files('libs/android-support-v4.jar')
. Karena ini berasal dari mavin sekarang Anda dapat memasukkan ini dalam beberapa proyek tanpa masalah.
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')
}
Perbarui 5
Pada 0.1.3 sekarang ada tombol "Sinkronkan Proyek" di bilah alat. Anda dapat mengklik itu alih-alih mengimpor kembali proyek Anda setelah membuat perubahan pada .gradle
file.
compile 'com.google.android:support-v4:r6'
ke masing-masing proyek Anda dan plugin maven (seperti dalam contoh build.gradle di bawah) alih-alih compile files('libs/android-support-v4.jar')
gradle akan menyadari bahwa kedua proyek menyertakan hal yang sama dan hanya akan memasukkannya sekali saja.