Bagaimana cara mengimpor ketergantungan Maven di Android Studio / IntelliJ?

92

Saya telah membuat proyek Android baru menggunakan wizard default di Android Studio. Dikompilasi, dan menerapkan aplikasi ke perangkat saya. Semua baik-baik saja.

Sekarang saya ingin mengimpor perpustakaan eksternal yang tersedia di Maven. ( http://square.github.io/picasso/ ). Saya pergi ke properti modul, dan menambahkan perpustakaan Maven. Ini muncul dengan benar di daftar dependensi. Selain itu, ini muncul di editor dan saya dapat menggunakannya dengan benar dalam kode.

Namun, pada waktu kompilasi, saya mendapatkan kesalahan Gradle: tidak dapat menemukan kelas

Ada ide?

munkay
sumber

Jawaban:

72

Mulai versi 0.8.9, Android Studio mendukung Maven Central Repository secara default. Jadi untuk menambahkan dependensi maven eksternal yang perlu Anda lakukan adalah mengedit file build.gradle modul dan memasukkan baris ke bagian dependensi seperti ini:

dependencies {

    // Remote binary dependency
    compile 'net.schmizz:sshj:0.10.0'

}

Anda akan melihat pesan muncul seperti 'Sync now ...' - klik dan tunggu sampai repo maven diunduh bersama dengan semua dependensinya. Akan ada beberapa pesan di bilah status di bagian bawah yang memberi tahu Anda apa yang terjadi terkait unduhan. Setelah itu menyelesaikan ini, file JAR yang diimpor beserta dependensinya akan terdaftar di pohon Repositori Eksternal di jendela Browser Proyek, seperti yang ditunjukkan di bawah ini.

masukkan deskripsi gambar di sini

Beberapa penjelasan lebih lanjut disini: http://developer.android.com/sdk/installing/studio-build.html

dodgy_coder
sumber
6
Tidak berfungsi tanpa: repositories {mavenCentral ()}
Johannes
1
Kadang-kadang kita tidak bisa begitu saja menggunakan dependensi, menambahkan secara eksternal akan berhasil, contoh di sini ... repositori {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... kompilasi 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha
81

Saya menggunakan artefak android springframework sebagai contoh

buka build.gradle

Kemudian tambahkan yang berikut ini pada level yang sama dengan apply plugin: 'android'

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
   compile group: 'org.springframework.android', name: 'spring-android-rest-template', version: '1.0.1.RELEASE'
}

Anda juga dapat menggunakan notasi ini untuk artefak maven

compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'

IDE Anda harus menampilkan jar dan dependensinya di bawah 'Library Eksternal' jika tidak muncul, coba mulai ulang IDE (ini cukup sering terjadi pada saya)

berikut adalah contoh yang Anda berikan yang berhasil

buildscript { 
    repositories { 
        maven { 
            url 'repo1.maven.org/maven2'; 
        } 
    } 
    dependencies { 
        classpath 'com.android.tools.build:gradle:0.4' 
    } 
} 
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies { 
    compile files('libs/android-support-v4.jar') 
    compile group:'com.squareup.picasso', name:'picasso', version:'1.0.1' 
} 
android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 
    defaultConfig { 
        minSdkVersion 14 
        targetSdkVersion 17 
    } 
} 
pengguna1568967
sumber
1
Saya mencobanya, ini file build.gradle saya: `` buildscript {repositories {maven {url ' repo1.maven.org/maven2 '}} dependencies {classpath 'com.android.tools.build:gradle♥.4'}} terapkan plugin: 'android' dependencies {compile files ('libs / android-support-v4.jar') grup kompilasi: 'com.squareup.picasso', nama: 'picasso', versi: '1.0.1'} android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig {minSdkVersion 14 targetSdkVersion 17}} `` Kesalahan: Tidak dapat menemukan com.squareup.picasso: picasso: 1.0.1.
munkay
1
@munkay Saya memperbarui jawaban dengan build.gradle yang dikoreksi yang cocok dengan komentar Anda
pengguna1568967
18
Bagian kuncinya adalah memulai ulang IDE. Versi IntelliJ ini tidak menerima perubahan.
Jimmy2Times
Ya, setelah restart semuanya baik-baik saja.
firen
1
"Bagian kuncinya adalah memulai ulang IDE". ya Tuhan. Ini 2016 ... tapi ya, terima kasih Jimmy2Times.
Guy Moreillon
7

Android Studio 3

Jawaban yang membahas tentang Maven Central diberi tanggal sejak Android Studio menggunakan JCenter sebagai pusat repositori default sekarang. File build.gradle proyek Anda harus memiliki sesuatu seperti ini:

repositories {
    google()
    jcenter()
}

Jadi selama pengembang memiliki repositori Maven di sana (yang dilakukan Picasso), yang harus Anda lakukan hanyalah menambahkan satu baris ke bagian dependensi file build.gradle aplikasi Anda.

dependencies {
    // ...
    implementation 'com.squareup.picasso:picasso:2.5.2'
}
Suragch
sumber
4
  1. Hapus centang "Pekerjaan offline" di File> Settings> Gradle> Global Gradle Settings
  2. Sinkronkan ulang proyek, misalnya dengan memulai ulang Android Studio
  3. Setelah disinkronkan, Anda dapat memeriksa kembali opsi untuk bekerja secara offline.
rinkesh
sumber
0

Coba itext. Tambahkan ketergantungan ke Anda build.gradleuntuk terbaru pada posting ini

Catatan: versi khusus untuk android, setelah "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
tom
sumber