Wie importiere ich Maven-Abhängigkeiten in Android Studio / IntelliJ?

92

Ich habe ein neues Android-Projekt mit dem Standardassistenten in Android Studio erstellt. Kompilierte und stellte die App auf meinem Gerät bereit. Alles ist gut.

Jetzt möchte ich eine externe Bibliothek importieren, die auf Maven verfügbar ist. ( http://square.github.io/picasso/ ). Ich ging zu den Moduleigenschaften und fügte eine Maven-Bibliothek hinzu. Es wird korrekt in der Liste der Abhängigkeiten angezeigt. Außerdem wird es im Editor angezeigt und ich kann es korrekt im Code verwenden.

Beim Kompilieren wird jedoch ein Gradle-Fehler angezeigt: Klasse kann nicht gefunden werden

Irgendwelche Ideen?

munkay
quelle

Antworten:

71

Ab Version 0.8.9 unterstützt Android Studio standardmäßig das Maven Central Repository. Um eine externe Maven-Abhängigkeit hinzuzufügen, müssen Sie lediglich die build.gradle-Datei des Moduls bearbeiten und eine Zeile wie folgt in den Abhängigkeitsabschnitt einfügen:

dependencies {

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

}

Sie sehen eine Meldung wie "Jetzt synchronisieren ..." - klicken Sie darauf und warten Sie, bis das Maven-Repo mit all seinen Abhängigkeiten heruntergeladen wurde. In der Statusleiste unten werden einige Meldungen angezeigt, die Sie über den Download informieren. Nachdem dies abgeschlossen ist, werden die importierte JAR-Datei zusammen mit ihren Abhängigkeiten in der Struktur Externe Repositorys im Projektbrowser-Fenster aufgelistet, wie unten gezeigt.

Geben Sie hier die Bildbeschreibung ein

Einige weitere Erklärungen hier: http://developer.android.com/sdk/installing/studio-build.html

dodgy_coder
quelle
6
Funktioniert nicht ohne: Repositories {mavenCentral ()}
Johannes
1
Manchmal können wir nicht einfach in Abhängigkeiten verwenden, externes Training hinzufügen, hier probieren ... Repositories {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... 'com.google kompilieren .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha
81

Ich benutze das Springframework Android Artefakt als Beispiel

Öffnen Sie build.gradle

Fügen Sie dann auf der gleichen Ebene wie beim Anwenden des Plugins Folgendes hinzu : 'android'

apply plugin: 'android'

repositories {
    mavenCentral()
}

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

Sie können diese Notation auch für Maven-Artefakte verwenden

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

Ihre IDE sollte das JAR und seine Abhängigkeiten unter "Externe Bibliotheken" anzeigen, wenn es nicht angezeigt wird. Versuchen Sie, die IDE neu zu starten (dies ist mir ziemlich oft passiert).

Hier ist das Beispiel, das Sie bereitgestellt haben und das funktioniert

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 
    } 
} 
user1568967
quelle
1
Ich habe das versucht, hier ist meine build.gradle-Datei: `` `Buildscript {Repositories {Maven {URL ' Repo1.maven.org/maven2 '}} Abhängigkeiten {Klassenpfad 'com.android.tools.build:gradle:0.4'}} Plugin anwenden: 'android' Abhängigkeiten {Dateien kompilieren ('libs / android-support-v4.jar') Kompilierungsgruppe: 'com.squareup.picasso', Name: 'picasso', Version: '1.0.1'} android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig {minSdkVersion 14 targetSdkVersion 17}} `` `Fehler: com.squareup.picasso: picasso: 1.0.1 konnte nicht gefunden werden.
Munkay
1
@munkay Ich habe die Antwort mit einem korrigierten build.gradle aktualisiert, das Ihrem Kommentar entspricht
user1568967
18
Der Schlüsselteil ist der Neustart der IDE. Diese Version von IntelliJ nimmt keine Änderungen auf.
Jimmy2Times
Ja, nach dem Neustart ist alles in Ordnung.
Firen
1
"Schlüsselteil ist der Neustart der IDE". Oh mein Gott. Dies ist 2016 ... aber ja, danke Jimmy2Times.
Guy Moreillon
6

Android Studio 3

Die Antworten zu Maven Central sind veraltet, da Android Studio JCenter jetzt als Standard-Repository-Center verwendet. Die build.gradle-Datei Ihres Projekts sollte ungefähr so ​​aussehen:

repositories {
    google()
    jcenter()
}

Solange der Entwickler sein Maven-Repository dort hat (was Picasso tut), müssen Sie lediglich eine einzelne Zeile zum Abhängigkeitsabschnitt der build.gradle-Datei Ihrer App hinzufügen.

dependencies {
    // ...
    implementation 'com.squareup.picasso:picasso:2.5.2'
}
Suragch
quelle
4
  1. Deaktivieren Sie "Offline-Arbeit" unter Datei> Einstellungen> Gradle> Globale Gradle-Einstellungen
  2. Synchronisieren Sie das Projekt erneut, indem Sie beispielsweise Android Studio neu starten
  3. Nach der Synchronisierung können Sie die Option erneut aktivieren, um offline zu arbeiten.
Rinkesh
quelle
0

Versuchen Sie es itext. Fügen Sie Ihrem build.gradleneuesten Stand ab diesem Beitrag eine Abhängigkeit hinzu

Hinweis: Spezialversion für Android, nach "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Tom
quelle