Jak zaimportować zależność Maven w Android Studio / IntelliJ?


92

Utworzyłem nowy projekt Android przy użyciu domyślnego kreatora w Android Studio. Skompilowano i wdrożyłem aplikację na moim urządzeniu. Wszystko dobrze.

Teraz chcę zaimportować zewnętrzną bibliotekę, która jest dostępna w Maven. ( http://square.github.io/picasso/ ). Poszedłem do właściwości modułu i dodałem bibliotekę Maven. Pojawia się poprawnie na liście zależności. Dodatkowo pojawia się w edytorze i mogę go poprawnie używać w kodzie.

Jednak w czasie kompilacji pojawia się błąd Gradle: nie można znaleźć klasy

Jakieś pomysły?

Odpowiedzi:


71

Począwszy od wersji 0.8.9, Android Studio domyślnie obsługuje Maven Central Repository. Tak więc, aby dodać zewnętrzną zależność maven, wszystko, co musisz zrobić, to edytować plik build.gradle modułu i wstawić wiersz do sekcji zależności w następujący sposób:

dependencies {

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

}

Zobaczysz komunikat podobny do „Synchronizuj teraz…” - kliknij go i poczekaj na pobranie repozytorium Maven wraz ze wszystkimi jego zależnościami. Na pasku stanu u dołu pojawią się komunikaty informujące o tym, co się dzieje z pobieraniem. Po zakończeniu zaimportowany plik JAR wraz z jego zależnościami zostanie wyświetlony w drzewie Repozytoria zewnętrzne w oknie Przeglądarki projektu, jak pokazano poniżej.

wprowadź opis obrazu tutaj

Więcej wyjaśnień tutaj: http://developer.android.com/sdk/installing/studio-build.html


6
Nie działa bez: repozytoriów {mavenCentral ()}
Johannes

1
Czasami nie możemy po prostu użyć w zależnościach, dodając zewnętrzny trening, próbka tutaj ... repozytoria {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... compile 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha

81

Jako przykładu używam artefaktu Springframework Android

otwórz plik build.gradle

Następnie dodaj na tym samym poziomie, co w przypadku zastosowania wtyczki: „android”

apply plugin: 'android'

repositories {
    mavenCentral()
}

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

Możesz również użyć tej notacji dla artefaktów Mavena

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

Twoje IDE powinno pokazać jar i jego zależności w sekcji „Biblioteki zewnętrzne”, jeśli się nie pojawi, spróbuj ponownie uruchomić IDE (zdarzyło mi się to trochę)

oto przykład, który podałeś, że działa

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 
    } 
} 

1
Próbowałem, oto mój plik build.gradle: `` buildscript {repositories {maven {url ' repo1.maven.org/maven2 '}} zależności {classpath 'com.android.tools.build:gradle:0.4'}} zastosuj wtyczkę: zależności 'android' {kompiluj pliki ('libs / android-support-v4.jar') grupa kompilacji: 'com.squareup.picasso', nazwa: 'picasso', wersja: '1.0.1'} android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig {minSdkVersion 14 targetSdkVersion 17}} `` Błąd: nie można znaleźć com.squareup.picasso: picasso: 1.0.1.
munkay

1
@munkay Zaktualizowałem odpowiedź o poprawiony plik build.gradle, który pasuje do Twojego komentarza
user1568967

18
Kluczową częścią jest ponowne uruchomienie IDE. Ta wersja IntelliJ nie odbiera zmian.
Jimmy2Times

Tak, po restarcie wszystko jest w porządku.
firen

1
„Kluczowa część to ponowne uruchomienie IDE”. o mój Boże. To jest 2016 rok ... ale tak, dzięki Jimmy2Times.
Guy Moreillon

7

Android Studio 3

Odpowiedzi, które mówią o Maven Central, są nieaktualne, ponieważ Android Studio używa teraz JCenter jako domyślnego centrum repozytorium. Plik build.gradle Twojego projektu powinien mieć coś takiego:

repositories {
    google()
    jcenter()
}

Tak długo, jak programista ma tam swoje repozytorium Maven (co robi Picasso), wszystko, co musisz zrobić, to dodać jedną linię do sekcji zależności w pliku build.gradle aplikacji.

dependencies {
    // ...
    implementation 'com.squareup.picasso:picasso:2.5.2'
}

4
  1. Usuń zaznaczenie opcji „Praca w trybie offline” w menu Plik> Ustawienia> Gradle> Globalne ustawienia Gradle
  2. Ponownie zsynchronizuj projekt, na przykład ponownie uruchamiając Android Studio
  3. Po zsynchronizowaniu możesz ponownie zaznaczyć opcję, aby pracować w trybie offline.

0

Spróbuj itext. Dodaj zależność do swojegobuild.gradle najnowszej od tego postu

Uwaga: specjalna wersja dla Androida, na końcu „g”:

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.