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.
sumber
compile 'com.google.android:support-v4:r6'
ke masing-masing proyek Anda dan plugin maven (seperti dalam contoh build.gradle di bawah) alih-alihcompile files('libs/android-support-v4.jar')
gradle akan menyadari bahwa kedua proyek menyertakan hal yang sama dan hanya akan memasukkannya sekali saja.Jawaban:
Catatan : Jawaban ini adalah jawaban murni Gradle, saya menggunakan ini di IntelliJ secara teratur tetapi saya tidak tahu bagaimana integrasi dengan Android Studio. Saya seorang yang percaya mengetahui apa yang terjadi pada saya, jadi ini adalah bagaimana saya menggunakan Gradle dan Android.
TL; DR Contoh Lengkap - https://github.com/ethankhall/driving-time-tracker/
Penafian : Ini adalah proyek yang sedang saya kerjakan.
Gradle memiliki struktur yang telah ditentukan (yang dapat Anda ubah, tautan di bagian bawah memberi tahu Anda caranya) yang sangat mirip dengan Maven jika Anda pernah menggunakannya.
Jika Anda hanya memiliki satu proyek, file settings.gradle tidak diperlukan. Namun Anda ingin menambahkan lebih banyak proyek, jadi kami membutuhkannya.
Sekarang mari kita mengintip file build.gradle itu. Anda akan membutuhkan ini di dalamnya (untuk menambahkan alat android)
build.gradle
Sekarang kita perlu memberi tahu Gradle tentang beberapa bagian Android. Sederhana saja. Yang dasar (yang berfungsi di sebagian besar kasus saya) terlihat seperti berikut ini. Saya punya komentar di blok ini, ini akan memungkinkan saya untuk menentukan nama versi dan kode saat membuat APK.
build.gradle
Sesuatu yang ingin kita tambahkan, untuk membantu siapa pun yang belum melihat cahaya Gradle, cara bagi mereka untuk menggunakan proyek tanpa menginstalnya.
build.gradle
Jadi sekarang kita punya satu proyek untuk dibangun. Sekarang kita akan menambahkan yang lain. Saya meletakkannya di direktori, mungkin menyebutnya deps, atau subproyek. Tidak masalah, tetapi Anda harus tahu di mana Anda meletakkannya. Untuk memberi tahu Gradle di mana proyek Anda akan perlu menambahkannya ke settings.gradle.
Struktur Direktori:
setting.gradle:
Hal terakhir yang Anda harus memastikan dari adalah sub-proyek / reallyCoolProject1 / build.gradle memiliki
apply plugin: "android-library"
bukanapply plugin: "android"
.Seperti setiap proyek Gradle (dan Maven) kita sekarang perlu memberi tahu proyek root tentang ketergantungannya. Ini juga dapat mencakup semua dependensi Java normal yang Anda inginkan.
build.gradle
Saya tahu ini sepertinya banyak langkah, tetapi mereka cukup mudah setelah Anda melakukannya sekali atau dua kali. Cara ini juga akan memungkinkan Anda untuk membangun di server CI dengan asumsi Anda telah menginstal Android SDK di sana.
Catatan Sisi NDK: Jika Anda akan menggunakan NDK Anda akan membutuhkan sesuatu seperti di bawah ini. Contoh file build.gradle dapat ditemukan di sini: https://gist.github.com/khernyo/4226923
build.gradle
Sumber:
sumber
Saya baru saja mengalami masalah yang sangat mirip dengan gradle builds / menambahkan .jar library. Saya membuatnya bekerja dengan kombinasi:
compile fileTree(dir: 'libs', include: '*.jar')}
TETAPI lebih penting dan menjengkelkan, hanya beberapa jam setelah saya membuatnya berfungsi, Android Studio baru saja merilis 0.3.7, yang mengklaim telah memecahkan banyak masalah gradle seperti menambahkan .jar libraries
http://tools.android.com/recent
Semoga ini bisa membantu orang!
sumber
Ini solusi saya untuk pengguna mac. Saya pikir ini juga berfungsi untuk windows:
Pertama pergi ke bilah alat Android Studio Anda
Bangun> Buat Proyek (saat Anda online biarkan untuk mengunduh file) lalu
Build> Compile Module "nama aplikasi Anda ditampilkan di sini" (masih online biarkan file-file tersebut
diunduh dan selesai) lalu
Jalankan aplikasi Anda yang sudah selesai akan meluncurkan emulator Anda dan konfigurasikan lalu jalankan!
Hanya itu saja!!! Selamat Coding guys !!!!!!!
sumber
Gradle Build Tools 2.2.0+ - Semuanya berfungsi
Ini cara yang benar untuk melakukannya
Dalam mencoba menghindari eksperimental dan terus-menerus muak dengan NDK dan semua peretasannya, saya senang bahwa 2.2.x dari Gradle Build Tools keluar dan sekarang hanya berfungsi. Kuncinya adalah argumen path
externalNativeBuild
dan menunjukndkBuild
padaAndroid.mk
atau mengubahndkBuild
kecmake
dan mengarahkan argumen path padaCMakeLists.txt
skrip build.Untuk lebih jelasnya periksa halaman Google tentang menambahkan kode asli .
Setelah pengaturan ini dengan benar, Anda dapat
./gradlew installDebug
dan pergilah. Anda juga perlu menyadari bahwa NDK bergerak ke dentang karena gcc sekarang tidak digunakan lagi dalam Android NDK.sumber