Bagaimana cara menambahkan proyek perpustakaan (seperti Sherlock ABS) ke Android Studio ?
(Bukan untuk bundel berbasis ADT Eclipse lama, tetapi ke Android Studio yang baru .)
Gradle
, lihat jawaban StackOverflow ini .
Bagaimana cara menambahkan proyek perpustakaan (seperti Sherlock ABS) ke Android Studio ?
(Bukan untuk bundel berbasis ADT Eclipse lama, tetapi ke Android Studio yang baru .)
Gradle
, lihat jawaban StackOverflow ini .
Jawaban:
Pembaruan untuk Android Studio 1.0
Sejak Android Studio 1.0 dirilis (dan banyak versi antara v1.0 dan salah satu yang pertama dari waktu jawaban saya sebelumnya) beberapa hal telah berubah.
Deskripsi saya difokuskan pada menambahkan proyek perpustakaan eksternal dengan tangan melalui file Gradle (untuk lebih memahami prosesnya). Jika Anda ingin menambahkan perpustakaan melalui pencipta Android Studio cukup periksa jawaban di bawah ini dengan panduan visual (ada beberapa perbedaan antara Android Studio 1.0 dan yang dari screenshot, tetapi prosesnya sangat mirip).
Sebelum Anda mulai menambahkan perpustakaan ke proyek Anda dengan tangan, pertimbangkan untuk menambahkan ketergantungan eksternal. Itu tidak akan mengacaukan dalam struktur proyek Anda. Hampir setiap perpustakaan Android yang terkenal tersedia dalam repositori Maven dan instalasinya hanya membutuhkan satu baris kode dalam app/build.gradle
file:
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
Menambahkan perpustakaan
Berikut adalah proses lengkap untuk menambahkan perpustakaan Android eksternal ke proyek kami:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
), buat folder baru: /libs
di mana kami akan menempatkan perpustakaan eksternal kami (langkah ini tidak diperlukan - hanya untuk menjaga struktur proyek yang lebih bersih)./libs
folder yang baru dibuat . Dalam contoh ini saya menggunakan pustaka PagerSlidingTabStrip (cukup unduh ZIP dari GitHub, ubah nama direktori pustaka menjadi "PagerSlidingTabStrip" dan salin). Berikut adalah struktur baru dari proyek kami:HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabStrip/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
Edit settings.gradle dengan menambahkan perpustakaan Anda ke include
. Jika Anda menggunakan jalur khusus seperti yang saya lakukan, Anda juga harus menentukan direktori proyek untuk perpustakaan kami. Keseluruhan setting.gradle akan terlihat seperti di bawah ini:
include ':app', ':PagerSlidingTabStrip'
project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
5.1 Jika Anda menghadapi kesalahan "Konfigurasi Default", maka coba ini alih-alih langkah 5,
include ':app'
include ':libs:PagerSlidingTabStrip'
Dalam app/build.gradle
menambahkan proyek perpustakaan kami sebagai ketergantungan:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":PagerSlidingTabStrip")
}
6.1. Jika Anda mengikuti langkah 5.1, maka ikuti ini bukannya 6,
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":libs:PagerSlidingTabStrip")
}
Jika proyek perpustakaan Anda tidak memiliki build.gradle
file, Anda harus membuatnya secara manual. Berikut ini contoh file itu:
apply plugin: 'com.android.library'
dependencies {
compile 'com.android.support:support-v4:21.0.3'
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
Selain itu Anda dapat membuat konfigurasi global untuk proyek Anda yang akan berisi versi SDK dan versi alat bantu untuk setiap modul agar tetap konsisten. Cukup edit gradle.properties
file dan tambahkan baris:
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.1.3
ANDROID_BUILD_SDK_VERSION=21
Sekarang Anda dapat menggunakannya di build.gradle
file Anda (dalam modul aplikasi dan perpustakaan) seperti di bawah ini:
//...
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
}
}
//...
Itu saja. Cukup klik ‚sinkronkan proyek dengan ikon Gradle ' . Perpustakaan Anda harus tersedia di proyek Anda.
Google I / O 2013 - Sistem Android SDK Build Baru adalah presentasi yang hebat tentang membangun aplikasi Android dengan Sistem Gradle Build: Seperti yang dikatakan Xavier Ducrohet:
Android Studio adalah tentang pengeditan, dan debugging dan profil. Ini bukan tentang membangun lagi.
Pada awalnya mungkin sedikit membingungkan (terutama bagi mereka, yang bekerja dengan Eclipse dan belum pernah melihat semut - seperti saya;)), tetapi pada akhirnya Gradle memberi kita beberapa peluang besar dan layak untuk belajar membangun sistem ini.
Global libraries
(# 10: "sekarang buka Perpustakaan global")? Selain itu, berfungsi seperti yang dijelaskan :) Terima kasih banyak. (Saya harap Google akan membahasnya - tugas sederhana seperti ini sangat rumit saat ini)
Berikut ini panduan visualnya:
Pembaruan untuk Android Studio 0.8.2:
Di Android Studio 0.8.2, buka Struktur Proyek -> di bawah Modul, cukup tekan tombol plus dan pilih Impor Proyek yang Ada dan impor actionbarsherlock
. Kemudian sinkronkan file Gradle Anda.
Jika Anda menghadapi kesalahan
Kesalahan: Revisi Alat Bangun SDK (xx.xx) terlalu rendah. Minimum yang diwajibkan adalah yy.yy
buka saja build.gradle
file dalam actionbarsherlock
direktori dan perbarui buildToolsVersion
ke yang disarankan.
android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
File Menu -> Struktur Proyek ... :
Modul -> Modul Impor
Setelah mengimpor modul perpustakaan, pilih modul proyek Anda dan tambahkan ketergantungan:
Dan kemudian pilih modul yang diimpor :
Select your project module and add dependency
dependencies { // ... compile project(':library') }
Gunakan menu File -> Struktur Proyek -> Modul .
Saya mulai menggunakannya hari ini. Ini sedikit berbeda.
Untuk Sherlock, mungkin Anda ingin menghapus direktori pengujian mereka, atau menambahkan junit.jar
file ke classpath.
Untuk mengimpor perpustakaan menggunakan gradle, Anda harus menambahkannya ke dependencies
bagian build.gradle
(modul Anda).
Misalnya
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.0'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}
Android Studio sedang berubah.
Ada bagian bernama "Buka pengaturan modul" jika Anda mengklik kanan pada folder modul di bagian proyek Android Studio (saya menggunakan versi 0.2.10).
Modules
bagian di Project Structure
jendela.
Saya akan mempertimbangkan Dependensi, Perpustakaan Android, dan pengaturan multi-proyek bacaan yang diperlukan. Silakan luangkan beberapa menit untuk melakukannya.
Khususnya, dalam kasus proyek perpustakaan non-jar, baca cuplikan berikut dari sumber di atas:
Proyek Gradle juga dapat bergantung pada proyek gradle lainnya dengan menggunakan pengaturan multi-proyek. Setup multi-proyek biasanya bekerja dengan memiliki semua proyek sebagai sub folder dari proyek root yang diberikan.
Misalnya, diberikan kepada struktur berikut:
MyProject/
+ app/
+ libraries/
+ lib1/
+ lib2/
Kami dapat mengidentifikasi 3 proyek. Gradle akan merujuk mereka dengan nama berikut:
:app
:libraries:lib1
:libraries:lib2
Setiap proyek akan memiliki build.gradle sendiri yang menyatakan bagaimana proyek itu dibangun. Selain itu, akan ada file bernama settings.gradle di root mendeklarasikan proyek. Ini memberikan struktur berikut:
MyProject/
| settings.gradle
+ app/
| build.gradle
+ libraries/
+ lib1/
| build.gradle
+ lib2/
| build.gradle
Konten settings.gradle sangat sederhana:
include ':app', ':libraries:lib1', ':libraries:lib2'
Ini menentukan folder mana yang sebenarnya merupakan proyek Gradle.
Proyek: aplikasi kemungkinan bergantung pada perpustakaan, dan ini dilakukan dengan mendeklarasikan dependensi berikut:
dependencies {
compile project(':libraries:lib1')
}
Harap perhatikan bahwa ada sedikit atau tidak ada penggunaan Android Studio GUI untuk mewujudkan hal ini.
Saat ini saya menggunakan submit git untuk menghubungkan perpustakaan bersarang ke repositori git perpustakaan yang sebenarnya untuk menghindari kekacauan ketergantungan.
Saya baru saja menemukan cara yang lebih mudah (daripada menulis langsung ke file .gradle).
Ini untuk Android Studio 1.1.0.
File Menu -> Modul Baru ... :
Klik pada "Impor Proyek yang Ada".
Pilih perpustakaan yang diinginkan dan modul yang diinginkan.
Klik selesai. Android Studio akan mengimpor perpustakaan ke proyek Anda. Ini akan menyinkronkan file gradle.
Tambahkan modul yang diimpor ke dependensi proyek Anda.
Klik kanan pada folder aplikasi -> Buka Pengaturan modul -> buka tab dependensi -> Klik tombol '+' -> klik Ketergantungan Modul.
Modul perpustakaan akan ditambahkan ke dependensi proyek.
???
Keuntungan
Cara termudah yang saya temukan untuk memasukkan proyek perpustakaan eksternal adalah (misalnya untuk memasukkan perpustakaan Facebook yang disimpan satu direktori di folder dependensi):
Dalam settings.gradle tambahkan
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
Di bagian dependensi build.gradle, tambahkan
compile project ('facebook')
Yang tersisa untuk dilakukan adalah menyinkronkan proyek dengan file gradle.
Cara sederhana untuk menambahkan file JAR sebagai perpustakaan ke proyek Android Studio Anda:
a) Salin file * .jar Anda
b) Tempel ke direktori libs di bawah proyek Anda:
c) Tambahkan ke build.gradle:
dependencies {
...
compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}
b) Jika proyek Anda dari contoh com.example.MYProyek dan perpustakaan com.example.ScanAPI memiliki namespace com.example yang sama , Android Studio akan memeriksa bangunan Anda dan membuat semua perubahan yang diperlukan dalam proyek Anda. Setelah itu Anda dapat meninjau pengaturan ini di File menu -> Struktur Proyek .
c) Jika proyek dan perpustakaan Anda memiliki ruang nama yang berbeda, Anda harus mengklik kanan pada perpustakaan dan memilih opsi "Tambahkan sebagai Perpustakaan" dan pilih jenis yang Anda butuhkan.
Ingat opsi "Struktur proyek" tidak melakukan perubahan otomatis dalam "build.gradle" di versi Android Studio saat ini (0.2.3). Mungkin fitur ini akan tersedia di versi berikutnya.
File build.gradle yang relevan kemudian akan diperbarui secara otomatis.
Buka file build.gradle Anda dan tambahkan aturan build baru ke penutupan dependensi. Misalnya, jika Anda ingin menambahkan Layanan Google Play, bagian dependensi proyek Anda akan terlihat seperti ini:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.5.+'
}
Di panel Proyek, Control+ klik modul yang ingin Anda tambahkan ketergantungannya dan pilih Buka Pengaturan Modul.
Pilih tab Dependensi, diikuti oleh tombol + di sudut kiri bawah. Anda dapat memilih dari daftar opsi berikut:
Anda kemudian dapat memasukkan informasi lebih lanjut tentang ketergantungan yang ingin Anda tambahkan ke proyek Anda. Misalnya, jika Anda memilih Ketergantungan Perpustakaan, Android Studio menampilkan daftar perpustakaan yang dapat Anda pilih.
Setelah Anda menambahkan ketergantungan Anda, periksa file build.gradle tingkat modul Anda. Seharusnya secara otomatis diperbarui untuk memasukkan ketergantungan baru.
Dalam proyek tempat Anda ingin menambahkan proyek perpustakaan eksternal, buka menu File -> New -> * Import New Module **, navigasikan ke proyek perpustakaan yang ingin Anda tambahkan ke proyek Anda, pilih untuk menambahkan modul 'library' di proyek Anda. Anda akan mendapatkan settings.gradle di proyek Anda, di samping aplikasi, termasuk pustaka, sesuatu seperti ini:
include ':app', ':library'
Tambahkan build.gradle (Module: app) di bagian dependensi:
Kompilasi proyek (': perpustakaan')
Bangun kembali proyek, dan hanya itu.
* Anda dapat menambahkan perpustakaan (modul) sebanyak yang Anda inginkan. Dalam hal ini di settings.gradle Anda akan memiliki:
include ':app', ':lib1', ':lib2', ...
Dan di build.gradle, Anda harus memiliki:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Some other dependencies...
compile project(':lib1')
compile project(':lib2')
...
}
Anda dapat melakukan ini dengan mudah. Buka File menu -> Baru -> Modul Impor ... :
Jelajahi direktori yang berisi modul. Klik Selesai:
Pergi ke Struktur Proyek dan tambahkan Ketergantungan Modul :
Catatan: Jika Anda menerima kesalahan SDK, perbarui yang itu.
Mengedit dependensi pustaka melalui GUI tidak disarankan karena tidak menulis perubahan tersebut ke file build.gradle Anda. Jadi proyek Anda tidak akan dibangun dari command-line. Kita harus mengedit file build.gradle secara langsung sebagai berikut.
Misalnya, diberikan kepada struktur berikut:
Proyek saya/
Kami dapat mengidentifikasi tiga proyek. Gradle akan merujuk mereka dengan nama-nama berikut:
Proyek: aplikasi kemungkinan bergantung pada perpustakaan, dan ini dilakukan dengan mendeklarasikan dependensi berikut:
dependencies {
compile project(':libraries:lib1')
}
Untuk menambah jawaban: Jika IDE tidak menunjukkan kesalahan, tetapi ketika Anda mencoba mengkompilasi, Anda mendapatkan sesuatu seperti:
No resource found that matches the given name 'Theme.Sherlock.Light'
Proyek perpustakaan Anda mungkin dikompilasi sebagai proyek aplikasi. Untuk mengubah ini, buka:
File Menu -> Struktur proyek -> Aspek -> [Nama perpustakaan] -> Periksa "Modul perpustakaan".
First Way Ini berfungsi untuk MacBook.
Pertama pilih file builder.gradle Anda sebagai layar yang diberikan:
Tambahkan dependensi seperti pada layar yang dipilih:
Pilih proyek sinkronisasi.
Jika Anda mendapatkan kesalahan seperti "Project with path ': signature-pad' tidak dapat ditemukan di project ': app'", maka silakan gunakan cara kedua:
Pilih menu File -> New -> Import Module ... :
Setelah mengklik Modul Impor ,
berikan path perpustakaan seperti jalur MacBook saya:
Klik pada Selesai . Sekarang perpustakaan Anda ditambahkan.
Setelah mengimpor Modul ABS (dari File> Struktur Proyek) dan memastikan itu memiliki Android 2.2 dan Support Library v4 sebagai dependensi, saya masih mendapatkan kesalahan berikut saat Anda @Alex
Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'
Saya menambahkan modul yang baru diimpor sebagai ketergantungan pada modul aplikasi utama saya dan itu memperbaiki masalah.
Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.
. Sepertinya proyek utama saya tidak melihat sumber daya proyek perpustakaan (ABS). Namun IDE mengenali referensi ke kelas dan sumber daya. Tangkapan layar
Cukup tambahkan nama pustaka ke blok dependensi file build.gradle aplikasi Anda .
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
Perhatikan bahwa Anda harus menggunakan implementation
daripada compile
sekarang. Ini baru dengan Android Studio 3.0. Lihat Tanya Jawab ini untuk penjelasan perbedaannya.
com.android.tools.build:gradle:2.3.3
bukan 3.0.0 di Android Studio 3 jika Anda ingin terus menggunakan "kompilasi".
Cukup impor proyek perpustakaan Android sebagai modul dan di Build.gradle .
Terapkan plugin: 'com.android.library'
Setelah itu, ikuti langkah-langkah ini:
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 adalah tautan Dropbox tentang cara menambahkan file JAR dan proyek perpustakaan di versi terbaru Android Studio 1.0.1.
Silakan lihat dokumentasi dengan tangkapan layar. Sangat mudah bagi pengguna baru.
Saya menemukan solusinya. Ini sangat mudah. Ikuti instruksi froger_mcs .
Pastikan bahwa Anda membuat folder src folder Sumber di Struktur Proyek -> Modul (Sumber).
Pada dasarnya, Anda dapat memasukkan file JAR Anda dalam tiga cara berbeda. Yang terakhir adalah pustaka jarak jauh yang menggunakan https://bintray.com/ jcenter repositori online. Tetapi, jika Anda melakukannya dengan salah satu dari dua cara lain, file JAR akan dimasukkan secara fisik dalam proyek Anda. Silakan baca tautan ini https://stackoverflow.com/a/35369267/5475941 untuk informasi lebih lanjut. Dalam posting ini saya menjelaskan cara mengimpor file JAR Anda di Android studio dan saya menjelaskan semua cara yang mungkin.
Singkatnya, jika seperti ini (alamat lokal), mereka diunduh dan file-file JAR ini secara fisik dalam proyek:
Tetapi, jika ini adalah alamat internet seperti ini, mereka adalah perpustakaan jarak jauh (bintray.com jcenter bagian) dan mereka akan digunakan dari jarak jauh:
Saya harap ini membantu.
Buka file aplikasi modul build gradle dan tambahkan ketergantungan Anda. Jika Anda mengunduh perpustakaan, cukup impor dan bangun sebagai gradle.
Jika tidak, tambahkan repositori dalam aplikasi modul side gradle:
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
Repositori pertama akan mengunduh perpustakaan untuk Anda.
Dan kompilasi pustaka yang diunduh:
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
Jika Anda membuat perpustakaan, Anda hanya perlu mengimpor proyek sebagai modul impor baru.
Saya memiliki penyebab masalah yang berbeda, jadi untuk orang-orang:
repositories {
mavenCentral()
}
ubah mavenCentral () ke jcenter () dan tambahkan
allprojects {
repositories {
jcenter()
}
}
Di Android Studio, buka folder aplikasi di dalam, dan buka file build.gradle. Di sini Anda akan melihat dependensi {}. Di dalamnya Anda dapat menambahkan proyek perpustakaan dan menyinkronkan. Sekarang setelah sinkronisasi perpustakaan itu akan ditambahkan ke proyek Anda, dan Anda dapat menggunakan fungsi dan kelasnya di proyek Anda.
Untuk Android Studio:
Klik pada Build.gradle (module: app) .
Dan tambahkan untuk
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/commons-io-2.4.jar')
}
dan di "app" direktori Anda, buat direktori, "libs". Tambahkan file yourfile.jar:
Akhirnya, kompilasi File Gradle:
Saya juga mengalami masalah yang sama kemudian saya melakukan hal-hal berikut.
Saya mengimpor proyek perpustakaan ke IDE AndroidStudio saya sebagai modul menggunakan menu File -> Impor menu modul
Kemudian saya pergi ke modul utama saya di mana saya ingin proyek perpustakaan sebagai proyek dependen
Klik kanan pada modul utama (dalam kasus saya namanya adalah aplikasi ) -> buka pengaturan modul -> masuk ke tab dependensi -> klik tombol + (Anda akan mendapatkannya di sisi kanan jendela) -> klik pada ketergantungan modul - > pilih proyek perpustakaan Anda dari daftar
Terapkan perubahan dan klik OKtombol.
Ini berhasil untuk saya. Saya harap ini akan membantu orang lain juga.
Tambahkan ini dalam file gradle build Anda:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0'
}
Memang karena versi berubah, demikian juga mengubah antarmuka pengguna dan opsi yang tersedia di menu. Setelah membaca sebagian besar jawaban untuk pertanyaan ini, saya harus menebak apa yang akan bekerja untuk Android Studio 1.1.0 .
Dengan mouse Anda, pilih proyek di tingkat utama (ini adalah tempat ia menunjukkan nama aplikasi Anda).
Klik kanan, dan pilih opsi menu New, Folder, Asset Folder .
Setelah membuat folder aset, tempel atau salin di dalamnya, file JAR apa pun yang Anda butuhkan untuk pustaka Anda.
Dari menu utama Android Studio (di atas layar) pilih File -> Project Structure .
Kemudian pilih nama proyek Anda dan pergi ke tab Ketergantungan .
Klik tanda plus ( +) di kiri bawah kotak dialog dan pilih ketergantungan file.
Terakhir, buka folder aset yang baru dibuat, pilih file JAR yang Anda salin, lalu klik terapkan dan OK.
Bersihkan dan bangun kembali proyek Anda.