Comment importer une dépendance Maven dans Android Studio / IntelliJ?

92

J'ai créé un nouveau projet Android à l'aide de l'assistant par défaut dans Android Studio. Compilé et déployé l'application sur mon appareil. Tout est bien.

Maintenant, je souhaite importer une bibliothèque externe disponible sur Maven. ( http://square.github.io/picasso/ ). Je suis allé aux propriétés du module et j'ai ajouté une bibliothèque Maven. Il apparaît correctement dans la liste des dépendances. De plus, il apparaît dans l'éditeur et je peux l'utiliser correctement dans le code.

Cependant, au moment de la compilation, j'obtiens une erreur Gradle: impossible de trouver la classe

Des idées?

munkay
la source

Réponses:

71

Depuis la version 0.8.9, Android Studio prend en charge le référentiel central Maven par défaut. Donc, pour ajouter une dépendance maven externe, tout ce que vous avez à faire est de modifier le fichier build.gradle du module et d'insérer une ligne dans la section des dépendances comme ceci:

dependencies {

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

}

Vous verrez un message comme «Synchroniser maintenant ...» - cliquez dessus et attendez que le dépôt maven soit téléchargé avec toutes ses dépendances. Il y aura des messages dans la barre d'état en bas vous indiquant ce qui se passe concernant le téléchargement. Une fois cette opération terminée, le fichier JAR importé ainsi que ses dépendances seront répertoriés dans l'arborescence des référentiels externes de la fenêtre Navigateur de projet, comme illustré ci-dessous.

entrez la description de l'image ici

Quelques explications supplémentaires ici: http://developer.android.com/sdk/installing/studio-build.html

dodgy_coder
la source
6
Ne fonctionne pas sans: repositories {mavenCentral ()}
Johannes
1
Parfois, nous ne pouvons pas simplement utiliser dans les dépendances, l'ajout externe de la séance d'entraînement, échantillon ici ... repositories {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... compile 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha
81

J'utilise l'artefact android springframework comme exemple

ouvrir build.gradle

Ensuite, ajoutez ce qui suit au même niveau que le plugin apply: 'android'

apply plugin: 'android'

repositories {
    mavenCentral()
}

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

vous pouvez également utiliser cette notation pour les artefacts maven

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

Votre IDE devrait afficher le fichier jar et ses dépendances sous `` Bibliothèques externes '' s'il ne s'affiche pas, essayez de redémarrer l'EDI (cela m'est arrivé un peu)

voici l'exemple que vous avez fourni qui fonctionne

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
la source
1
J'ai essayé ça, voici mon fichier build.gradle: `` `` buildscript {repositories {maven {url ' repo1.maven.org/maven2 '}} dependencies {classpath 'com.android.tools.build:gradle:0.4'}} appliquer le plugin: dépendances 'android' {compiler les fichiers ('libs / android-support-v4.jar') groupe de compilation: 'com.squareup.picasso', nom: 'picasso', version: '1.0.1'} android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig {minSdkVersion 14 targetSdkVersion 17}} `` `` Erreur: Impossible de trouver com.squareup.picasso: picasso: 1.0.1.
munkay
1
@munkay J'ai mis à jour la réponse avec un build.gradle corrigé qui correspond à votre commentaire
user1568967
18
L'élément clé est le redémarrage de l'EDI. Cette version d'IntelliJ ne prend pas en compte les changements.
Jimmy2Times
Oui, après le redémarrage, tout va bien.
FIREN
1
"La partie clé redémarre l'IDE". OMG. Nous sommes en 2016 ... mais oui, merci Jimmy2Times.
Guy Moreillon
6

Android Studio 3

Les réponses qui parlent de Maven Central sont datées car Android Studio utilise maintenant JCenter comme centre de référentiel par défaut. Le fichier build.gradle de votre projet doit avoir quelque chose comme ceci:

repositories {
    google()
    jcenter()
}

Donc, tant que le développeur y a son référentiel Maven (ce que fait Picasso), tout ce que vous avez à faire est d'ajouter une seule ligne à la section des dépendances du fichier build.gradle de votre application.

dependencies {
    // ...
    implementation 'com.squareup.picasso:picasso:2.5.2'
}
Suragch
la source
4
  1. Décochez "Travail hors ligne" dans Fichier> Paramètres> Gradle> Paramètres globaux Gradle
  2. Resynchronisez le projet, par exemple en redémarrant Android Studio
  3. Une fois synchronisé, vous pouvez cocher à nouveau l'option pour travailler hors ligne.
rinkesh
la source
0

Essayez itext. Ajouter une dépendance à votre build.gradlepour la dernière à partir de ce post

Remarque: version spéciale pour Android, à la fin de "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
à M
la source