web-dev-qa-db-fra.com

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

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

Maintenant, je veux importer une bibliothèque externe 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. 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, je reçois une erreur Gradle: impossible de trouver la classe

Des idées?

88
munkay

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, il suffit d’éditer le fichier build.gradle du module et d’insérer une ligne dans la section dependencies comme ceci:

dependencies {

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

}

Vous verrez un message du type "Synchronisez maintenant ..." - cliquez dessus et attendez que le référentiel maven soit téléchargé avec toutes ses dépendances. Il y aura quelques messages dans la barre d'état en bas vous informant de 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 Référentiels externes de la fenêtre du navigateur de projet, comme indiqué ci-dessous.

enter image description here

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

68
dodgy_coder

J'utilise l'artefact springframework Android comme exemple

ouvrir build.gradle

Ajoutez ensuite les éléments suivants au même niveau que apply 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 fichier jar et ses dépendances sous "Bibliothèques externes" s'il ne s'affiche pas, essayez de redémarrer le IDE (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 
    } 
} 
80
user1568967

Android Studio

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

repositories {
    google()
    jcenter()
}

Donc, tant que le développeur a son référentiel Maven (ce que fait Picasso), il vous suffira 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'
}
6
Suragch
  1. Décochez la case "Travail hors ligne" dans Fichier> Paramètres> Gradule> Paramètres globaux
  2. Resynchronisez le projet, par exemple en redémarrant le Android Studio.
  3. Une fois synchronisé, vous pouvez cocher l'option à nouveau pour travailler en mode hors connexion.
4
rinkesh

Essayez itext. Ajouter une dépendance à votre build.gradle pour la dernière fois à compter de cet article

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

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