Saya baru mengenal sistem build gradle dan IntelliJ.
Jadi bagaimana cara membuat Proyek Perpustakaan Android (mis. Com.myapp.lib1) dan proyek aplikasi (mis. Com.myapp.app) dan membuat sistem build menyertakan com.myapp.lib1 pada proyek aplikasi?
Saya pergi ke Struktur Proyek -> Modul -> proyek Aplikasi Saya dan menambahkan ketergantungan pada proyek lib. IntelliJ sekarang dapat mengenali kelas dari proyek lib ketika digunakan dalam proyek aplikasi, tetapi ketika saya menjalankan proyek aplikasi, ada kesalahan seperti:
Gradle: error: package com.myapp.lib1 does not exist
android-studio
Randy Sugianto 'Yuku'
sumber
sumber
Jawaban:
Untuk membuat perpustakaan:
File> Modul Baru
pilih Perpustakaan Android
Untuk menggunakan perpustakaan, tambahkan itu sebagai ketergantungan:
File> Struktur Proyek> Modul> Dependensi
Kemudian tambahkan modul (perpustakaan android) sebagai dependensi modul.
Jalankan proyek Anda. Itu akan berhasil.
sumber
Saya heran mengapa tidak ada contoh proyek stoples yang berdiri sendiri.
Dalam gerhana, kita cukup centang kotak "Is Library" dalam dialog pengaturan proyek.
Di Android studio, saya mengikuti langkah-langkah ini dan mendapatkan file jar.
Buat proyek.
buka file di menu proyek sebelah kiri. (app / build.gradle): Script Gradle> build.gradle (Modul: XXX)
ubah satu baris:
apply plugin: 'com.android.application'
->'apply plugin: com.android.library'
hapus applicationId dalam file:
applicationId "com.mycompany.testproject"
build project: Build> Rebuild Project
maka Anda bisa mendapatkan file aar: app> build> outputs> folder aar
ubah
aar
nama ekstensi file menjadizip
unzip, dan Anda dapat melihat
classes.jar
di folder. ganti nama dan gunakan!Lagi pula, saya tidak tahu mengapa google membuat pembuatan jar sangat merepotkan di studio android.
sumber
Plugin Gradle Google merekomendasikan cara untuk mengonfigurasi file gradle Anda untuk membangun beberapa proyek memiliki beberapa kekurangan. Jika Anda memiliki beberapa proyek tergantung pada satu proyek perpustakaan, posting ini menjelaskan secara singkat konfigurasi yang direkomendasikan Google, kekurangannya, dan merekomendasikan cara berbeda untuk mengonfigurasi file gradle Anda ke mendukung pengaturan multi-proyek di Android Studio:
Pengaturan multi-proyek alternatif untuk studio android
Cara Yang Berbeda:
Ternyata ada cara yang lebih baik untuk mengelola beberapa proyek di Android Studio. Caranya adalah dengan membuat proyek Android Studio terpisah untuk perpustakaan Anda dan memberi tahu gradle bahwa modul untuk perpustakaan tempat aplikasi Anda berada berada di direktori proyek perpustakaan. Jika Anda ingin menggunakan metode ini dengan struktur proyek yang saya jelaskan di atas, Anda akan melakukan hal berikut:
Langkah ke-4 adalah bagian yang sulit, jadi itulah satu-satunya langkah yang akan saya jelaskan secara terperinci. Anda dapat referensi modul yang eksternal ke direktori proyek Anda dengan menambahkan pernyataan proyek di file settings.gradle Anda dan dengan mengatur properti projectDir pada objek ProjectDescriptor yang dikembalikan oleh pernyataan proyek:
Kode yang harus dimasukkan
settings.gradle
:Jika Anda telah melakukan ini dengan benar, Anda akan melihat bahwa modul yang dirujuk oleh proyek Anda akan muncul di navigator proyek, bahkan jika modul-modul itu di luar direktori proyek:
Ini memungkinkan Anda untuk bekerja pada kode pustaka dan kode aplikasi secara bersamaan. Integrasi kontrol versi juga berfungsi dengan baik ketika Anda mereferensikan modul secara eksternal dengan cara ini. Anda dapat melakukan dan mendorong modifikasi Anda ke kode perpustakaan sama seperti Anda dapat melakukan dan mendorong modifikasi ke kode aplikasi Anda.
Cara mengatur beberapa proyek ini menghindari kesulitan yang mengganggu konfigurasi yang disarankan Google. Karena kami mereferensikan sebuah modul yang berada di luar direktori proyek, kami tidak perlu membuat salinan tambahan dari modul perpustakaan untuk setiap aplikasi yang bergantung padanya dan kami dapat memvariasikan perpustakaan kami tanpa segala macam git submodule nonsense.
Sayangnya, cara lain untuk mendirikan beberapa proyek ini sangat sulit ditemukan. Jelas, ini bukan sesuatu yang akan Anda ketahui dari melihat panduan Google, dan pada titik ini, tidak ada cara untuk mengkonfigurasi proyek Anda dengan cara ini dengan menggunakan UI dari Android Studio.
sumber
Lihat tautan ini tentang pengaturan multi proyek .
Beberapa hal yang perlu diperhatikan, pastikan Anda memiliki pengaturan Anda. Diperbarui untuk referensi modul aplikasi dan perpustakaan.
setting.gradle:
include ':app', ':libraries:lib1', ':libraries:lib2'
Pastikan juga build.gradle aplikasi memiliki followng:
Anda harus memiliki struktur berikut:
Build.gradle aplikasi harus menggunakan
com.android.application
plugin sementara build.gradle perpustakaan mana pun harus menggunakancom.android.library
plugin.Android Studio IDE harus diperbarui jika Anda dapat membangun dari baris perintah dengan pengaturan ini.
sumber
Untuk Intellij IDEA (dan Android Studio) setiap perpustakaan adalah Modul. Pikirkan Modul di Android Studio yang setara dengan proyek di Eclipse. Proyek di Android Studio adalah kumpulan modul. Modul dapat dijalankan aplikasi atau modul perpustakaan.
Jadi, untuk menambah proyek perpustakaan android baru Anda perlu membuat modul tipe "perpustakaan Android". Kemudian tambahkan modul perpustakaan ini ke daftar ketergantungan modul utama Anda (modul Aplikasi).
sumber
Cara paling sederhana bagi saya untuk membuat dan menggunakan kembali proyek perpustakaan:
file > new > new module
(dan jawab pertanyaan UI)include ':myLibrary'
centang / atau tambahkan jika dalam file build.gradle :
dependencies { ... compile project(':myLibrary') }
Untuk menggunakan kembali modul perpustakaan ini di proyek lain, salin folder itu di proyek daripada langkah 1 dan lakukan langkah 2 dan 3.
Anda juga dapat membuat proyek aplikasi studio baru. Anda dapat dengan mudah mengubah modul aplikasi yang ada ke modul perpustakaan dengan mengubah tugas plugin di file build.gradle menjadi com.android.library.
untuk
lebih lanjut di sini
sumber
Anda dapat menambahkan modul baru ke aplikasi apa pun seperti yang dikatakan Blundell pada jawabannya dan kemudian merujuknya dari aplikasi lain.
Jika Anda ingin memindahkan modul ke sembarang tempat di komputer Anda cukup pindahkan folder modul (modul benar-benar independen), maka Anda harus merujuk modul tersebut.
Untuk referensi modul ini Anda harus:
Pada file build.gradle aplikasi Anda, tambahkan:
Pada file settings.gradle tambahkan yang berikut ini:
sumber
project(':library').projectDir = new File('../library')
manalibrary
nama folder secara paralel dengan folder proyek android.Jangan lupa gunakan
apply plugin: 'com.android.library'
dibuild.gradle
plugin Anda alih-alih terapkan:'com.android.application'
sumber
Cara Dokumentasi
Ini adalah cara yang disarankan sesuai saran yang diberikan dalam dokumentasi Android Studio.
Buat modul perpustakaan
Buat proyek baru untuk menjadikan perpustakaan Anda masuk. Klik File> Baru> Modul Baru> Perpustakaan Android> Selanjutnya> (pilih nama)> Selesai . Kemudian tambahkan kelas apa saja dan sumber daya yang Anda inginkan ke perpustakaan Anda.
Ketika Anda membangun modul, file AAR akan dibuat. Anda dapat menemukannya di
project-name/module-name/build/outputs/aar/
.Tambahkan perpustakaan Anda sebagai ketergantungan
Anda dapat menambahkan perpustakaan Anda sebagai ketergantungan ke proyek lain seperti ini:
Di file settings.gradle, pastikan nama perpustakaan Anda ada di sana.
Di file build.gradle aplikasi, tambahkan baris kompilasi ke bagian dependensi:
Itu dia. Anda harus dapat menggunakan perpustakaan Anda sekarang.
Catatan
Jika Anda ingin membuat perpustakaan Anda mudah tersedia untuk audiens yang lebih besar, pertimbangkan untuk menggunakan JitPac atau JCenter .
sumber
Punya pertanyaan yang sama dan menyelesaikannya dengan cara berikut:
Mulai situasi :
Target : ingin menambahkan modul bernama
dataformats
Java Library
)Pastikan
settings.gradle
penampilan Anda seperti ini (biasanya otomatis):include ':frigoshare', ':frigoShare-backend', ':dataformats'
Pastikan ( secara manual ) bahwa
build.gradle
file - file modul yang perlu menggunakan perpustakaan Anda memiliki ketergantungan berikut:dependencies { ... compile project(':dataformats') }
sumber
Tujuan: Perpustakaan Android di satu tempat - Bagikan di berbagai proyek http://raevilman.blogspot.com/2016/02/android-library-project-using-android.html
sumber
Seperti yang dikomentari oleh responden, saya mencoba mencari tentang Gradle Build Varians dan saya menemukan tautan ini: http://code.tutsplus.com/tutorials/using-gradle-build-variants--cms-25005 Ini adalah solusi yang sangat sederhana. Inilah yang saya lakukan: - Dalam build.gradle:
Kemudian saya memiliki 2 versi lebih banyak dari aplikasi saya: pro dan percobaan dengan 2 packageName berbeda yang merupakan 2 applicationId dalam kode di atas sehingga saya dapat mengunggah keduanya ke Google Play. Saya masih hanya kode di bagian "utama" dan menggunakan getpackageName untuk beralih ke versi. Cukup buka tautan yang saya berikan untuk detail.
sumber
Ada dua cara paling sederhana jika salah satu tidak berfungsi, silakan coba yang lain.
ATAU
sumber
Dalam kasus saya, menggunakan MAC OS X 10.11 dan Android 2.0, dan dengan melakukan persis seperti yang dijelaskan Aqib Mumtaz.
Tetapi, setiap kali, saya mendapat pesan ini: " Terjadi masalah saat mengonfigurasi proyek ': app'.> Tidak dapat mengevaluasi modul xxx: Konfigurasi dengan nama 'default' tidak ditemukan ."
Saya menemukan bahwa alasan pesan ini adalah bahwa Android 2.0 tidak memungkinkan untuk membuat perpustakaan secara langsung. Jadi, saya telah memutuskan pertama untuk membuat projet aplikasi dan kemudian memodifikasi build.gradle untuk mengubahnya sebagai perpustakaan.
Solusi ini tidak berfungsi, karena proyek Perpustakaan sangat berbeda dari proyek aplikasi.
Jadi, saya telah menyelesaikan masalah saya seperti ini:
Kemudian lanjutkan dengan solusi yang diusulkan oleh Aqib Mumtaz.
Akibatnya, sumber pustaka Anda akan dibagikan tanpa perlu menduplikasi file sumber setiap kali (itu adalah bid'ah bagi saya!)
Berharap ini membantu Anda.
sumber