web-dev-qa-db-fra.com

Comment ajouter de la goyave à mon projet Android Studio?

Tout d’abord, je suis au courant de l’existence de cette question - Comment puis-je ajouter un projet de bibliothèque à Android Studio? _ - et malheureusement, cela ne m’a pas aidé.

Mon objectif est plutôt simple. Je souhaite écrire une application Android à l'aide d'Android Studio IDE (0.2.11) et des bibliothèques de goyave de mon code. 

Je ne connais pas Gradle, je ne fais que commencer à utiliser Android Studio et mon arrière-plan Visual Studio/C # m’a masqué, ce pour quoi je me excuse (dans le monde de Mickey Mouse, vous ajoutez généralement une référence à une bibliothèque et vous êtes libre). 

Je vais documenter mes pas avec des screenshots. J'ai surtout suivi les conseils donnés dans cette réponse .

J'ai créé un dossier libraries sous mon dossier de projet.

enter image description here

J'ai cloné le référentiel Goyave dans celui-ci. 

enter image description here

Les fichiers sont apparus avec succès.

enter image description here

Je suis allé à Project Structure et sélectionné Import Module.

enter image description here

enter image description here

J'ai sélectionné Create module from existing sources et accepté tous les choix par défaut.

J'ai mis à jour mon fichier settings.gradle avec include ':libraries:guava', ':Test':

enter image description here

Et mon fichier build.gradle avec compile project(":libraries:guava"):

enter image description here

Mais tout ce que je reçois chaque fois que j'essaie de reconstruire le projet, c'est:

Error: Gradle: A problem occurred configuring project ':Test'.
> Failed to notify project evaluation listener.
> Configuration with name 'default' not found.

J'ai essayé de mettre un build.gradle comme ci-dessous dans le dossier guava:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'Android-library'

dependencies {
    compile 'com.Android.support:support-v4:13.0.+'
}

Android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

(comme le réponse susmentionnée dit).

J'ai cherché dans tous les sens pour trouver le "bon code" build.gradle pour Guava.

_ { https://code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild } _ - ne m'a pas aidé non plus.

J'ai essayé d'innombrables choses que je ne décrirai pas ici car elles étaient plutôt aléatoires - j'ai essayé d'ajouter une dépendance de module, j'ai essayé d'activer Use auto-import dans Gradle settings, etc.

Je sais que ce n'est pas une façon de résoudre les problèmes et je promets de lire avec assiduité les Guide de l'utilisateur de Gradle de 1 à 5.4.2 à 7.3, mais je ne peux pas croire que ce soit vraiment une condition sine qua non simplement ajouter une bibliothèque à un projet? Pourquoi n’existe-t-il pas de fichier build.gradle par défaut à partir duquel on pourrait commencer à jouer avec toutes sortes de choses si nécessaire?

Et la vraie question - comment créer une application (dans Android Studio) qui fonctionne, fonctionne réellement sur un appareil Android et qui me permet d'utiliser Guava pour pouvoir trier une carte par valeurs sans écrire 50 lignes de code? :)

Désolé du ton bavard de ma question, je connais l’exercice, c’est ma façon de dissiper ma frustration. 

À en juger par le nombre de suffrages exprimés pour des questions et des réponses portant sur des problèmes similaires, je suis certain que je ne suis pas le seul à bénéficier de quelques instructions supplémentaires. Je commencerais tout de suite par une prime, mais les règles me l’interdisent.

17
Konrad Morawski

Si vous devez simplement utiliser une version stable et publiée des bibliothèques Guava, son importation est extrêmement facile.

Allez simplement dans le fichier build.gradle du module où vous voulez utiliser la bibliothèque (i.e GuavaTestProject/GuavaTest/build.gradle) et, juste après 

repositories {
    mavenCentral()
}

ajoutez une dépendance Maven:

dependencies {
    compile group: 'com.google.guava', name: 'guava', version: '15.0'
}

Reconstruisez votre projet si nécessaire et c'est tout (testé avec un nouveau projet créé avec Android Studio 0.2.13).

Si vous avez vraiment besoin d'inclure le code source de la bibliothèque Guava et de le compiler vous-même en tant que module de votre génération Gradle, c'est un problème totalement différent, car Guava est construit avec Maven et vous devez donc déplacer le système de génération Guava de Maven à Gradle. ce qui, à mon avis, est extrêmement complexe pour vos objectifs.

Si vous avez juste besoin de parcourir la source ou de la visualiser pendant le débogage, voici ce que je ferais:

  • Téléchargez le code source de Guava dans un dossier séparé:

    git clone https://code.google.com/p/guava-libraries/
    git checkout v15.0
    
  • Lorsque Android Studio ne trouve pas les sources, cliquez sur "Joindre les sources" et pointez sur cet emplacement alternatif.

Je pense que si vous n'avez pas besoin de modifier et de compiler le code source de Guava, c'est la solution la plus simple.

43
jlhuertas

C’est beaucoup d’informations dans votre question …… .j’utilise aussi Guava. Mais je ne me souviens pas avoir traversé une de ces difficultés ..

Guava est disponible sur mavencentral. Ajouter de la goyave à votre projet devrait donc être assez simple. Autant que je sache, vous n'avez pas besoin de commander, de construire et d'ajouter une dépendance de projet, etc.

Voir le fichier Gradle pour mon application ci-dessous.

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'Android'

repositories {
     mavenCentral()
}

// Dependencies
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar') // jar files under the libs folder.
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // actionbarsherlock,
    compile 'com.Android.support:support-v4:18.0.0' // Android support lib
    compile 'com.google.code.gson:gson:2.2.4' // google GSON
    compile 'com.google.guava:guava:14.0.1' // guava 14.0.1
}
9
Varun
dependencies {
  compile 'com.google.guava:guava:19.0'
}

Source: https://github.com/google/guava

EDIT: Depuis la version 22, il existe une version spécifique de guava pour Android .

dependencies {
  compile 'com.google.guava:guava:22.0-Android'
}

* Merci Sam :)

8
AlikElzin-kilaka

n'utilisez pas la bibliothèque complète de goyave, utilisez la version spécifique à Android,

dependencies {
    compile 'com.google.guava:guava:23.0-Android'
}
4
Sam

Dans Android Studio 0.3.0, cela fonctionne maintenant comme il se doit sur Mac. Voir les notes de publication pour des options supplémentaires lors de l'ajout de bibliothèques http://tools.Android.com/recent/androidstudio030released


Je travaille sur Windows maintenant et il y a deux options Faites un clic droit sur un fichier jar dans libs et vous avez un ajout à la bibliothèque Ou vous pouvez appuyer sur F4 et ouvrir les paramètres de la bibliothèque afin lutter autant sur Windows que sur un Mac


C'est ce que j'ai fait. S'il vous plaît lire jusqu'à la fin car cela fonctionne de façon incohérente et si vous ne voyez pas la flèche bleue d'abord essayez il y a une résolution. J'ai d'abord créé un dossier libs. Je ne pense pas que cela soit nécessaire, mais c’est une habitude.

enter image description here

Essayez d’abord de cliquer sur Fichier, Structure du projet.

Si vous voyez une petite flèche bleue en haut à gauche, appuyez dessus et vous irez à l'écran où vous pourrez ajouter une bibliothèque.

enter image description here

Si vous parvenez à cet écran ci-dessous Appuyez sur le signe plus et ajoutez la bibliothèque .enter image description here

Vous pouvez également voir une ligne rouge en bas indiquant que la goyave n'est pas utilisée avec une ampoule. Ce remplissage ajoute la dépendance au fichier de construction de Gradle enter image description here

SI VOUS NE VOYEZ PAS LA FLECHE BLEUE

Allez plutôt dans Fichier, Autres paramètres, Structure de projet par défaut.

À partir de cet écran, vous pouvez ajouter la bibliothèque enter image description here

Revenez ensuite à la structure du projet et ajoutez-le. Le fait est que cela restera par défaut pour tous vos projets afin que vous puissiez l'ajouter et le supprimer pour chaque projet individuel via le menu de structure de projet. Je ne sais pas s'il s'agit d'un bogue dans Android Studio, du fait que vous pouvez être empêché de l'ajouter au projet individuel sans modifier la valeur par défaut.

2
Ryan Heitner

Pour Android Studio 3.2.1:

Cliquez sur le menu Structure de fichier/projet (Ctrl + Alt + Maj + S). Appuyez sur le bouton + dans l'onglet Dépendances du menu de l'application pour ajouter une dépendance Bibliothèque.

Recherchez com.google.guava: guava: (quel que soit le numéro le plus récent) et ajoutez-le.

 Add Guava to Android Studio project  Add Guava to Android Studio project