102 votes

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

J'ai créé un nouveau projet Android en utilisant l'assistant par défaut dans Android Studio. J'ai compilé et déployé l'application sur mon appareil. Tout va bien.

Maintenant je veux importer une bibliothèque externe qui est disponible sur Maven. ( http://square.github.io/picasso/ ). Je suis allé dans les propriétés du module et j'ai ajouté une bibliothèque Maven. Elle apparaît correctement dans la liste des dépendances. De plus, elle s'affiche 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 ?

83voto

user1568967 Points 551

J'utilise l'artefact Android de Springframework comme exemple.

ouvrir build.gradle

Ensuite, ajoutez ce qui suit au même niveau que appliquer le plugin : 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 jar et ses dépendances sous 'External Libraries'. Si ce n'est pas le cas, essayez de redémarrer l'IDE (cela m'est arrivé assez souvent).

Voici l'exemple que vous avez fourni et 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 
    } 
}

1 votes

J'ai essayé, voici mon fichier build.gradle : ``` buildscript { repositories { maven { url ' repo1.maven.org/maven2 ' } } dependencies { classpath 'com.Android.tools.build:gradle:0.4' } } apply plugin : 'Android' 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 } } ``` Erreur : Impossible de trouver com.squareup.picasso:picasso:1.0.1.

1 votes

@munkay J'ai mis à jour la réponse avec un build.gradle corrigé qui correspond à votre commentaire.

18 votes

La partie la plus importante est de redémarrer l'IDE. Cette version d'IntelliJ ne prend pas en compte les changements.

74voto

dodgy_coder Points 2778

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

dependencies {

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

}

Vous verrez apparaître un message du type 'Sync now...' - cliquez dessus et attendez que le repo maven soit téléchargé avec toutes ses dépendances. Des messages s'afficheront dans la barre d'état en bas de l'écran pour vous informer de l'avancement du téléchargement. Une fois le téléchargement terminé, le fichier JAR importé avec ses dépendances sera listé dans l'arbre External Repositories dans la fenêtre Project Browser, comme montré ci-dessous.

enter image description here

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

7 votes

Ne fonctionne pas sans : repositories { mavenCentral() }

1 votes

Parfois, nous ne pouvons pas simplement utiliser les dépendances internes, l'ajout de dépendances externes peut être utile, par exemple ici ... repositories { maven { url ' oss.sonatype.org/content/repositories/ksoap2-Android-releases ' } } ... compilez 'com.google.code.ksoap2-Android:ksoap2-Android:3.6.0'.

8voto

Suragch Points 197

Android Studio 3

Les réponses qui parlent de Maven Central sont datées car Android Studio utilise désormais JCenter comme centre de dépôt par défaut. Le fichier build.gradle de votre projet devrait avoir quelque chose comme ceci :

repositories {
    google()
    jcenter()
}

Ainsi, tant que le développeur dispose de son dépôt Maven (ce qui est le cas de Picasso), il suffit d'ajouter une seule ligne à la section dépendances du fichier build.gradle de votre application.

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

5voto

rinkesh Points 552
  1. Décochez "Offline work" dans File>Settings>Gradle>Global Gradle Paramètres
  2. Resynchronisez le projet, par exemple en redémarrant Android Studio.
  3. Une fois la synchronisation effectuée, vous pouvez cocher à nouveau l'option pour travailler hors ligne.

2voto

Phan Van Linh Points 16963

En Android Studio Bumblebee les déclarations maven dans settings.gradle (au lieu de build.gradle comme la version AS précédente)

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {
           ....
        }
    }
}

0 votes

Merci, ça aide dans le nouveau studio

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X