Je suis nouveau sur le système de construction gradle et IntelliJ.
Alors, comment créer un projet de bibliothèque Android (par exemple com.myapp.lib1) et le projet d'application (par exemple com.myapp.app) et faire en sorte que le système de construction inclue com.myapp.lib1 sur le projet d'application?
Je suis allé dans la structure du projet -> Modules -> Mon projet d'application et j'ai ajouté une dépendance au projet lib. IntelliJ peut maintenant reconnaître les classes du projet lib lorsqu'il est utilisé dans le projet d'application, mais lorsque j'exécute le projet d'application, il y a des erreurs comme:
Gradle: error: package com.myapp.lib1 does not exist
android-studio
Randy Sugianto 'Yuku'
la source
la source
Réponses:
Pour créer une bibliothèque:
Fichier> Nouveau module
sélectionnez la bibliothèque Android
Pour utiliser la bibliothèque, ajoutez-la en tant que dépendance:
Fichier> Structure du projet> Modules> Dépendances
Ajoutez ensuite le module (bibliothèque Android) en tant que dépendance de module.
Exécutez votre projet. Il va travailler.
la source
Je me demande pourquoi il n'y a pas d'exemple de projet de pot autonome.
Dans eclipse, nous cochons simplement la case "Is Library" dans la boîte de dialogue de paramétrage du projet.
Dans le studio Android, j'ai suivi ces étapes et j'ai obtenu un fichier jar.
Créez un projet.
ouvrir le fichier dans le menu de projet de gauche. (app / build.gradle): Scripts Gradle> build.gradle (Module: XXX)
changer une ligne:
apply plugin: 'com.android.application'
->'apply plugin: com.android.library'
supprimez applicationId dans le fichier:
applicationId "com.mycompany.testproject"
projet de construction: Build> Rebuild Project
alors vous pouvez obtenir le fichier aar: app> build> sorties> dossier aar
changer
aar
le nom de l'extension de fichier enzip
décompressez, et vous pouvez voir
classes.jar
dans le dossier. renommez-le et utilisez-le!Quoi qu'il en soit, je ne sais pas pourquoi Google rend la création de pots si compliquée dans Android Studio.
la source
La méthode recommandée par Google Gradle Plugin pour configurer vos fichiers gradle pour créer plusieurs projets présente des lacunes Si vous avez plusieurs projets en fonction d'un projet de bibliothèque, cet article explique brièvement la configuration recommandée par Google, ses lacunes et recommande une autre façon de configurer vos fichiers gradle pour prendre en charge les configurations multi-projets dans Android Studio:
Une configuration alternative multiprojet pour Android Studio
Une manière différente:
Il s'avère qu'il existe un meilleur moyen de gérer plusieurs projets dans Android Studio. L'astuce consiste à créer des projets Android Studio séparés pour vos bibliothèques et à indiquer à Gradle que le module de la bibliothèque dont dépend votre application se trouve dans le répertoire de projet de la bibliothèque. Si vous souhaitez utiliser cette méthode avec la structure de projet que j'ai décrite ci-dessus, procédez comme suit:
La 4ème étape est la partie difficile, c'est donc la seule étape que je vais décrire en détail. Vous pouvez référencer des modules externes au répertoire de votre projet en ajoutant une instruction de projet dans votre fichier settings.gradle et en définissant la propriété projectDir sur l'objet ProjectDescriptor renvoyé par cette instruction de projet:
Le code à insérer
settings.gradle
:Si vous avez fait cela correctement, vous remarquerez que les modules référencés par votre projet apparaîtront dans le navigateur de projet, même si ces modules sont externes au répertoire du projet:
Cela vous permet de travailler simultanément sur le code de la bibliothèque et le code de l'application. L'intégration du contrôle de version fonctionne également très bien lorsque vous référencez des modules en externe de cette façon. Vous pouvez valider et pousser vos modifications dans le code de la bibliothèque, tout comme vous pouvez valider et pousser les modifications dans le code de votre application.
Cette façon de mettre en place plusieurs projets évite les difficultés qui pèsent sur la configuration recommandée par Google. Parce que nous référençons un module qui se trouve en dehors du répertoire du projet, nous n'avons pas à faire de copies supplémentaires du module de bibliothèque pour chaque application qui en dépend et nous pouvons versionner nos bibliothèques sans aucune sorte d'absurdité de sous-module git.
Malheureusement, cette autre façon de mettre en place plusieurs projets est très difficile à trouver. De toute évidence, ce n'est pas quelque chose que vous comprendrez en consultant le guide de Google, et à ce stade, il n'y a aucun moyen de configurer vos projets de cette manière en utilisant l'interface utilisateur d'Android Studio.
la source
Consultez ce lien sur les configurations multi-projets .
Certaines choses à souligner, assurez-vous que votre settings.gradle est mis à jour pour référencer à la fois les modules de l'application et de la bibliothèque.
settings.gradle:
include ':app', ':libraries:lib1', ':libraries:lib2'
Assurez-vous également que le build.gradle de l'application a le suivant:
Vous devriez avoir la structure suivante:
Le build.gradle de l'application doit utiliser le
com.android.application
plugin tandis que le build.gradle de toute bibliothèque doit utiliser lecom.android.library
plugin.L'IDE Android Studio doit se mettre à jour si vous pouvez créer à partir de la ligne de commande avec cette configuration.
la source
Pour Intellij IDEA (et Android Studio), chaque bibliothèque est un module. Considérez un module dans Android Studio comme un équivalent à un projet dans Eclipse. Project dans Android Studio est une collection de modules. Les modules peuvent être des applications exécutables ou des modules de bibliothèque.
Ainsi, pour ajouter un nouveau projet de bibliothèque Android, vous devez créer un module de type "Bibliothèque Android". Ajoutez ensuite ce module de bibliothèque à la liste de dépendances de votre module principal (module d'application).
la source
Le moyen le plus simple pour moi de créer et de réutiliser un projet de bibliothèque:
file > new > new module
(et répondez aux questions de l'interface utilisateur)include ':myLibrary'
vérifiez / ou ajoutez si dans le fichier build.gradle :
dependencies { ... compile project(':myLibrary') }
Pour réutiliser ce module de bibliothèque dans un autre projet, copiez son dossier dans le projet au lieu de l'étape 1 et suivez les étapes 2 et 3.
Vous pouvez également créer un nouveau projet d'application de studio Vous pouvez facilement changer un module d'application existant en module de bibliothèque en changeant l'affectation du plugin dans le fichier build.gradle en com.android.library.
à
plus ici
la source
Vous pouvez ajouter un nouveau module à n'importe quelle application comme Blundell le dit dans sa réponse, puis le référencer à partir de n'importe quelle autre application.
Si vous souhaitez déplacer le module vers n'importe quel endroit de votre ordinateur, déplacez simplement le dossier du module (les modules sont complètement indépendants), vous devrez alors référencer le module.
Pour référencer ce module, vous devez:
Sur le fichier build.gradle de votre application, ajoutez:
Sur le fichier settings.gradle, ajoutez ce qui suit:
la source
project(':library').projectDir = new File('../library')
oùlibrary
est le nom du dossier en parallèle avec le dossier du projet Android.N'oubliez pas d'utiliser
apply plugin: 'com.android.library'
dans votrebuild.gradle
plugin au lieu d'appliquer:'com.android.application'
la source
Manière de documentation
C'est la méthode recommandée selon les conseils donnés dans la documentation d'Android Studio.
Créer un module de bibliothèque
Créez un nouveau projet pour créer votre bibliothèque. Cliquez sur Fichier> Nouveau> Nouveau module> Bibliothèque Android> Suivant> (choisissez le nom)> Terminer . Ajoutez ensuite les classes et les ressources que vous souhaitez à votre bibliothèque.
Lorsque vous construisez le module, un fichier AAR sera créé. Vous pouvez le trouver dans
project-name/module-name/build/outputs/aar/
.Ajoutez votre bibliothèque en tant que dépendance
Vous pouvez ajouter votre bibliothèque en tant que dépendance à un autre projet comme ceci:
Dans le fichier settings.gradle, assurez-vous que le nom de votre bibliothèque y figure.
Dans le fichier build.gradle de l'application, ajoutez la ligne de compilation à la section des dépendances:
C'est tout. Vous devriez pouvoir utiliser votre bibliothèque maintenant.
Remarques
Si vous souhaitez rendre votre bibliothèque facilement accessible à un public plus large, envisagez d'utiliser JitPac ou JCenter .
la source
Eu la même question et l'a résolu de la manière suivante:
Situation de départ :
Cible : souhaitez ajouter un module nommé
dataformats
Java Library
)Assurez-vous que votre
settings.gradle
apparence ressemble à ceci (normalement automatiquement):include ':frigoshare', ':frigoShare-backend', ':dataformats'
Assurez-vous ( manuellement ) que les
build.gradle
fichiers des modules qui doivent utiliser votre bibliothèque ont la dépendance suivante:dependencies { ... compile project(':dataformats') }
la source
Objectif: bibliothèque Android à un seul endroit - Partager sur plusieurs projets http://raevilman.blogspot.com/2016/02/android-library-project-using-android.html
la source
Comme le commentaire theczechsensation ci-dessus, j'essaie de rechercher sur Gradle Build Varians et j'ai trouvé ce lien: http://code.tutsplus.com/tutorials/using-gradle-build-variants--cms-25005 C'est une solution très simple. Voici ce que j'ai fait: - Dans build.gradle:
Ensuite, j'ai 2 autres versions de mon application: pro et essai avec 2 packageName différent qui est 2 applicationId dans le code ci-dessus afin que je puisse télécharger les deux sur Google Play. Je code toujours dans la section "principale" et utilise le getpackageName pour basculer entre la version. Allez simplement sur le lien que j'ai donné pour plus de détails.
la source
Il existe deux méthodes simples si l'une ne fonctionne pas, veuillez essayer l'autre.
OU
la source
Dans mon cas, en utilisant MAC OS X 10.11 et Android 2.0, et en faisant exactement ce qu'Aqib Mumtaz a expliqué.
Mais, à chaque fois, j'ai eu ce message: " Un problème est survenu lors de la configuration du projet ': app'.> Impossible d'évaluer le module xxx: Configuration avec le nom 'default' introuvable ."
J'ai trouvé que la raison de ce message est qu'Android 2.0 ne permet pas de créer directement une bibliothèque. J'ai donc décidé de créer d'abord un projet d'application puis de modifier le build.gradle afin de le transformer en bibliothèque.
Cette solution ne fonctionne pas, car un projet de bibliothèque est très différent d'un projet d'application.
Donc, j'ai résolu mon problème comme ceci:
Continuez ensuite avec la solution proposée par Aqib Mumtaz.
En conséquence, la source de votre bibliothèque sera partagée sans avoir besoin de dupliquer les fichiers source à chaque fois (c'était une hérésie pour moi!)
En espérant que cela vous aide.
la source