Saya telah bereksperimen dengan sistem build android baru dan saya mengalami masalah kecil. Saya telah menyusun paket aar saya sendiri dari ActionBarSherlock yang saya sebut 'actionbarsherlock.aar'. Apa yang saya coba lakukan sebenarnya menggunakan aar ini untuk membangun APK akhir saya. Jika saya menyertakan seluruh perpustakaan ActionBarSherlock sebagai modul pustaka android ke proyek utama saya menggunakan proyek kompilasi (': actionbarsherlock') saya dapat membangun dengan sukses tanpa masalah.
Tapi masalah saya adalah bahwa saya ingin memberikan dependensi itu sebagai paket file aar MANUAL, jika saya ingin JAR maka saya tidak bisa menemukan cara untuk memasukkannya ke dalam proyek saya. Saya sudah mencoba menggunakan konfigurasi kompilasi tetapi ini sepertinya tidak berhasil. Saya terus mendapatkan tidak dapat menemukan simbol selama kompilasi yang memberitahu saya bahwa class.jar dari paket aar tidak dimasukkan dalam classpath.
Adakah yang tahu tentang sintaks untuk secara manual memasukkan paket aar sebagai file?
build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile files('libs/actionbarsherlock.aar')
}
android {
compileSdkVersion 15
buildToolsVersion "17.0"
}
EDIT: Jadi jawabannya adalah saat ini tidak didukung, inilah masalahnya jika Anda ingin melacaknya.
EDIT: Saat ini karena ini masih belum didukung secara langsung, alternatif terbaik tampaknya menjadi solusi yang diusulkan dari @RanWakshlak
EDIT: Juga lebih sederhana dengan menggunakan sintaks yang diusulkan oleh @VipulShah
sumber
Jawaban:
Ikuti langkah-langkah di bawah ini untuk membuatnya berfungsi (Saya telah mengujinya hingga Android Studio 2.2)
Katakanlah Anda telah menyimpan file aar di folder libs. (anggap nama file adalah
cards.aar
)kemudian di aplikasi
build.gradle
tentukan berikut dan klik proyek sinkronisasi dengan file Gradle. Buka build.gradle tingkat Proyek dan tambahkanflatDir{dirs 'libs'}
seperti di bawah inidan sekarang buka file build.grdle tingkat aplikasi dan tambahkan
.aar
fileJika semuanya berjalan dengan baik, Anda akan melihat entri perpustakaan dibuat dalam build -> meledak-aar
Perhatikan juga bahwa jika Anda mengimpor file .aar dari proyek lain yang memiliki dependensi, Anda harus menyertakannya dalam build.gradle Anda juga.
sumber
compile
ketergantungan tambahkan dua dependensidebugCompile(name:'cards-debug', ext:'aar')
danreleaseCompile(name:'cards-release', ext:'aar')
allprojects {...}
pergi ke file tingkat tingkat "proyek", dan bagian kedua dengandependencies {...}
harus pergi ke file tingkat tingkat "aplikasi".sumber
Alt+B
proyek bersih dan bangun kembali. Android Studio mengapa Anda sakit! Saya ingin memiliki NetBeans IDE sebagai Platform Pengembang Androidaar
lib ke proyek AndaAnda dapat mereferensikan file aar dari repositori. Seorang pakar adalah sebuah pilihan, tetapi ada solusi yang lebih sederhana: letakkan file aar di direktori libs Anda dan tambahkan repositori direktori.
Kemudian referensi perpustakaan di bagian ketergantungan:
Anda dapat memeriksa posting blog Min'an untuk informasi lebih lanjut.
sumber
implementation
dll. Ini adalah salin-rekatkan solusinya. Banyak upvotes baru masuk karena Android Build Gradle Plugin 4.0.0 sekarang melempar kesalahan alih-alih mengabaikan jalur .aar yang rusakPendekatan di bawah ini berfungsi dengan studio Android terbaru (> v0.8.x):
Simpan
aar
file di bawah aplikasi modullibs
folder (misalnya:<project>/<app>/libs/myaar.aar
)Tambahkan di bawah ini untuk build.gradle folder modul "app" Anda (bukan build.gradle root proyek Anda). Catat nama di baris kompilasi, itu myaar @ aar bukan myaar.aar.
Klik
Tools -> Android -> Sync Project with Gradle Files
sumber
sebelum (default)
cukup tambahkan
'*.aar'
dalaminclude
array.ini bekerja dengan baik di Android Studio 3.x.
jika Anda ingin mengabaikan beberapa perpustakaan? lakukan seperti ini.
sumber
implementation fileTree(include: ['*.?ar'], dir: 'libs')
Saya baru saja berhasil!
Salin file mylib-0.1.aar ke folder libs /
Tambahkan baris ini ke bagian bawah build.gradle (harus app, bukan proyek):
Sejauh ini bagus. Inilah poin terpenting:
Gradle perlu mengakses jaringan untuk dependensi kecuali mode offline diaktifkan.
Pastikan Anda telah mengaktifkan pekerjaan Offline melalui kotak centang di Project Structures / Gradle
-- ATAU --
Konfigurasikan pengaturan proxy untuk mengakses jaringan.
Untuk mengkonfigurasi pengaturan proxy Anda harus memodifikasi file properti gradle.prop proyek , mengkonfigurasi http dan https secara terpisah seperti di bawah ini:
Semoga ini berhasil.
sumber
Saat ini mereferensikan file .aar lokal tidak didukung (seperti dikonfirmasi oleh Xavier Ducrochet)
Yang bisa Anda lakukan adalah mengatur repositori Maven lokal (jauh lebih sederhana daripada kedengarannya) dan merujuk .aar dari sana.
Saya telah menulis posting blog yang merinci cara membuatnya bekerja di sini:
http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds
sumber
Anda dapat menambahkan beberapa
aar
dependensi hanya dengan beberapa baris kode.Tambahkan
flatDir
repositori lokal :Menambahkan setiap
aar
dilibs
direktoricompile
konfigurasi ketergantungan:sumber
libs
folder.Sayangnya tidak ada solusi di sini yang bekerja untuk saya (saya mendapatkan dependensi yang belum terselesaikan). Apa yang akhirnya berhasil dan merupakan cara termudah IMHO adalah: Sorot nama proyek dari Android Studio lalu File -> New Module -> Impor JAR atau Paket AAR. Kredit diberikan untuk solusi di pos ini
sumber
Ada 2 cara:
Cara pertama
Create New Module
jendela denganFile -> New -> New Module
Pilih
Import .JAR/.AAR Package
item dan klikNext
tombolTambahkan ketergantungan pada
build.gradle
file milikapp
modul Anda .Itu saja.
Cara kedua
Buat folder di
libs
direktori, sepertiaars
.Masukkan aar lib Anda ke folder aars.
Tambahkan potongan kode
ke dalam
build.gradle
file Anda milik modul aplikasi.build.gradle
file milikapp
modul Anda .Itu saja.
Jika Anda dapat membaca bahasa Mandarin, Anda dapat memeriksa blog 什么 是 AAR 文件 以及 如何 在 Android 开发 中 使用
sumber
Dengan Android Studio 3.4 dan Gradle 5 Anda cukup melakukannya seperti ini
sumber
MEMPERBARUI ANDROID STUDIO 3.4
sumber
Saya juga punya masalah ini. Laporan masalah ini: https://code.google.com/p/android/issues/detail?id=55863 tampaknya menyarankan bahwa secara langsung merujuk file .AAR tidak didukung.
Mungkin alternatif untuk saat ini adalah mendefinisikan pustaka actionbarsherlock sebagai pustaka Gradle di bawah direktori induk proyek Anda dan referensi yang sesuai.
Sintaksnya didefinisikan di sini http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Referencing-a-Library
sumber
Saya menemukan solusi ini di pelacak masalah Android: https://code.google.com/p/android/issues/detail?id=55863#c21
Caranya (bukan perbaikan) adalah dengan mengisolasi file .aar Anda ke dalam suatu sub-proyek dan menambahkan lib Anda sebagai artefak:
Info lebih lanjut: Menangani-transitif-dependensi-untuk-artefak lokal-guci-dan-aar
sumber
compile project(':mobile')
di android / app / build.gradle,configurations.maybeCreate("default")
di android / mobile / build.gradle,include ':mobile'
di android / settings.gradleDalam kasus saya, saya memiliki beberapa depency di perpustakaan saya dan ketika saya membuat
aar
dari itu saya gagal, karena depities terjawab, jadi solusi saya adalah menambahkan semua depencies dari lib saya denganarr
file.Jadi level proyek saya
build.gradle
terlihat sangat:build.gradle(modile app)
begitu:dan perpustakaan
build.gradle
:sumber
Saya mencoba semua solusi di sini tetapi tidak ada yang berfungsi, maka saya sadar saya melakukan kesalahan, saya meletakkan
.aar
folder yang salah, seperti yang Anda lihat di bawah, saya pikir saya harus meletakkan di folder root, jadi saya membuatlibs
folder di sana (1 di gambar) ), tetapi di dalam folder aplikasi, sudah adalibs
, Anda harus memasukkan yang kedualibs
, semoga ini membantu mereka yang memiliki masalah yang sama dengan saya:sumber
Cara standar untuk mengimpor file AAR dalam aplikasi diberikan di https://developer.android.com/studio/projects/android-library.html#AddDependency
Klik File> Baru> Modul Baru. Klik Impor .JAR / .AAR Paket kemudian klik Berikutnya. Masukkan lokasi file AAR atau JAR yang dikompilasi kemudian klik Selesai.
Silakan merujuk tautan di atas untuk langkah selanjutnya.
sumber
Sekedar menyederhanakan jawabannya
Jika file .aar hadir secara lokal, maka sertakan
compile project(':project_directory')
dalam dependensi build.gradle proyek Anda.Jika file .aar hadir di remote maka sertakan
compile 'com.*********.sdk:project_directory:0.0.1@aar'
dalam dependensi build.gradle proyek Anda.sumber
Dalam kasus saya hanya berfungsi ketika saya menambahkan "proyek" ke kompilasi:
sumber
Anda dapat melakukan sesuatu seperti ini:
Masukkan perpustakaan lokal Anda (dengan ekstensi: .jar, .aar, ...) ke dalam folder 'libs' (atau yang lain jika Anda mau).
Di build.gradle (tingkat aplikasi), tambahkan baris ini ke dalam dependensi
implementasi fileTree (termasuk: ['* .jar', '* .aar'], dir: 'libs')
sumber