Comment créer un projet de bibliothèque dans Android Studio et un projet d'application qui utilise la bibliothèque de projet
Je suis nouveau sur le système de build gradle et IntelliJ.
Alors, comment puis-je créer un Android Bibliothèque de Projet (par exemple, com.myapp.lib1) et le projet d'application (par exemple, com.myapp.app) et de rendre le système de construction inclure com.myapp.lib1 sur le projet d'application?
Je suis allé à la Structure du Projet -> Modules -> Mon projet d'Application et ajout d'une dépendance à la lib du projet. L'ide peut maintenant reconnaître les classes de la lib du projet une fois utilisé dans le projet d'appli, mais quand je lance l'application du projet, il y a des erreurs comme:
Gradle: error: package com.myapp.lib1 does not exist
- J'ai été en utilisant Android Bibliothèques pour créer des Gratuit/payant versions de mon application. Le nouveau système de build Gradle rend cette approche obsolète avec l'accumulation des Variantes de concept. Vous pouvez maintenant construire automatiquement des différents signé les Apk du même code. Je souhaite que j'avais connu cela plus tôt.
- - vous développer? Après le téléchargement de l'APK pour la version complète, j'ai essayé de télécharger l'APK de la version gratuite, mais en utilisant le même nom de package. Google Play Store (GPS) a donné un message me disant que j'avais déjà utilisé ce nom de package. Est-ce que vous dites à propos de gradle dire je n'ai pas besoin de deux applications en deux ensembles séparés?
- Voici la réponse parfaite stackoverflow.com/a/31366602/1118772. Aqib Mumtaz mentionnés dans les réponses, mais c'est à la dernière. Au lieu de perdre du temps sur d'autres moyens, vous pouvez aller avec cela. philosophicalhacker.com/2014/10/02/...
- Intéressant fil de l'ajout des Bibliothèques.avec picturale explication.
Vous devez vous connecter pour publier un commentaire.
Pour créer une bibliothèque:
Fichier > Nouveau Module
sélectionnez Android Bibliothèque
L'utilisation de la bibliothèque de l'ajouter en tant que dépendance:
Fichier > Structure de Projet > Modules > Dépendances
Puis ajouter le module (android library) comme un module de dépendance.
Exécuter votre projet. Il sera travail.
Je me demande pourquoi il n'y a pas d'exemple de stand alone jar du projet.
Dans eclipse, nous suffit de cocher "Est la Bibliothèque" dans la boîte de dialogue configuration de projet.
Dans Android studio, j'ai suivi les étapes et j'ai obtenu un fichier jar.
Créer un projet.
ouvrir le fichier, à gauche dans le menu projet.(app/build.gradle): Gradle Scripts > build.gradle(Module: XXX)
changer une ligne:
apply plugin: 'com.android.application'
->'apply plugin: com.android.library'
supprimer identificateur applicationid dans le fichier:
applicationId "com.mycompany.testproject"
de construction du projet: Build > Projet de Reconstruction de
ensuite, vous pouvez obtenir de l'aar fichier: app > build > sorties > aar dossier
changement
aar
l'extension de fichier nom danszip
décompresser, et vous pouvez voir
classes.jar
dans le dossier.renommer et de les utiliser!
De toute façon, je ne sais pas pourquoi google fait de la jarre de la création si ennuyeux dans android studio.
Google Plugin Gradle recommandé pour la configuration de votre gradle fichiers pour la construction de plusieurs projets a quelques défauts Si vous avez plusieurs projets en fonction d'un projet de bibliothèque, ce post expliquer brièvement Google est recommandé de configuration, de ses lacunes et de recommander une autre façon de configurer votre gradle fichiers de support multi-projet de configurations dans Android Studio:
Une alternative multiprojet configuration pour android studio
Une Manière Différente :
Il s'avère qu'il y est une meilleure façon de gérer plusieurs projets dans Android Studio. L'astuce est de créer des Android Studio les projets de vos bibliothèques et de dire gradle que le module de la bibliothèque de votre application dépend est situé dans la bibliothèque dans le répertoire du projet. Si vous souhaitez utiliser cette méthode avec la structure du projet, j'ai décrit ci-dessus, procédez de la manière suivante:
La 4ème étape est la partie la plus difficile, de sorte que la seule étape que je vais décrire dans le détail. Vous pouvez faire référence à des modules externes à votre répertoire du projet par l'ajout d'un projet de déclaration dans vos paramètres.gradle fichier et par la définition de la projectDir bien sur la ProjectDescriptor de l'objet renvoyé par le projet de la déclaration:
Le code a mettre dans
settings.gradle
:Si vous avez fait cela correctement, vous remarquerez que les modules référencés par votre projet s'affichera dans le navigateur de projets, même si ces modules sont externes au projet de répertoire:
Cela vous permet de travailler sur le code de la bibliothèque et le code de l'application simultanément. Contrôle de Version en outre, l'intégration fonctionne très bien lorsque vous faites référence à des modules de l'extérieur de cette façon. Vous pouvez valider et soumettre vos modifications à la bibliothèque de code exactement comme vous pouvez le commit et push de modifications au code de l'application.
Cette façon de mettre en place plusieurs projets évite les difficultés qui affligent Google est recommandé de configuration. Parce que nous sommes le référencement d'un module qui est en dehors du répertoire du projet nous n'avons pas à faire des copies supplémentaires de la bibliothèque de module pour chaque application qui en dépend, et nous pouvons la version de nos bibliothèques sans aucune sorte de git sous-module non-sens.
Malheureusement, cette autre façon de mettre en place plusieurs projets à la fois très difficile à trouver. Évidemment, ce n'est pas quelque chose que vous allez comprendre en regardant Google guide de l', et à ce stade, il n'y a pas moyen de configurer vos projets dans cette voie, par l'aide de l'INTERFACE utilisateur d'Android Studio.
Découvrez ce lien sur le multi projet configurations.
Certaines choses à remarquer, assurez-vous que vous avez vos paramètres.gradle mis à jour pour faire référence à la fois l'application et des modules de bibliothèque.
paramètres.gradle:
include ':app', ':libraries:lib1', ':libraries:lib2'
Assurez-vous également que l'application de la construire.gradle est la suivante:
Vous devriez avoir la structure suivante:
L'application de la construire.gradle doit utiliser le
com.android.application
plugin alors que toutes les bibliothèques de construire.gradle doit utiliser lecom.android.library
plugin.Android Studio IDE devrait mettre à jour si vous êtes en mesure de construire à partir de la ligne de commande avec cette configuration.
Pour Intellij IDEA (et Android Studio) chaque bibliothèque est un Module. Pensez à un Module dans Android Studio comme un équivalent de projet dans Eclipse. Projet dans Android Studio est une collection de modules. Les Modules peuvent être exécutables des applications ou des modules de bibliothèque.
Donc, pour ajouter un nouveau android bibliothèque de projet, vous devez créer un module de type "Android bibliothèque". Puis ajoutez ce module de la bibliothèque à la liste des dépendances de votre module (module d'Application).
Le moyen le plus simple pour moi de créer et réutilisation un projet de bibliothèque:
file > new > new module
(et de la réponse de l'INTERFACE utilisateur de questions)include ':myLibrary'
vérifier/ou ajouter si dans le fichier construire.gradle:
dependencies {
...
compile project(':myLibrary')
}
Pour utiliser ce module de la bibliothèque dans un autre projet, copie de son dossier dans le projet de la place de l'étape 1 et de suivre les étapes 2 et 3.
Vous pouvez également créer un nouveau studio de projet de l'application
Vous pouvez facilement modifier une application existante d'un module à un module de la bibliothèque en changeant le plugin affectation dans la construction.gradle fichier com.android.de la bibliothèque.
à
plus ici
Vous pouvez ajouter un nouveau module à n'importe quelle application comme Blundell dit sur sa réponse et ensuite de référence à partir de n'importe quelle application.
Si vous souhaitez déplacer le module à n'importe quel endroit sur votre ordinateur, il suffit de déplacer le dossier du module (les modules sont complètement indépendants), alors vous aurez à faire référence au module.
Pour faire référence à ce module, vous devriez:
À construire.gradle fichier de votre application ajouter:
Sur paramètres.gradle fichier, ajoutez la ligne suivante:
project(':library').projectDir = new File('../library')
oùlibrary
est le nom du dossier en parallèle avec le projet android du dossier.N'oubliez pas d'utiliser
apply plugin: 'com.android.library'
dans votrebuild.gradle
au lieu de s'appliquer plugin:'com.android.application'
La Documentation De Façon
C'est la manière recommandée par les conseils donnés dans Android Studio documentation.
Créer un module de bibliothèque
Créer un nouveau projet pour faire de votre bibliothèque. Cliquez sur Fichier > Nouveau > Module > Android Library > Suivant > (choisir un nom) > Finition. Puis ajouter toutes les classes et de ressources que vous voulez ajouter à votre bibliothèque.
Lorsque vous générez le module de l'AAR, le fichier sera créé. Vous pouvez le trouver dans
project-name/module-name/build/outputs/aar/
.Ajouter à votre bibliothèque comme une dépendance
Vous pouvez ajouter à votre bibliothèque comme une dépendance à un autre projet de ce type:
Dans les paramètres.gradle fichier, assurez-vous que votre nom de la bibliothèque est là.
Dans l'application de la construire.gradle fichier, ajoutez la ligne de compilation, à la section des dépendances:
Que c'est. Vous devriez être en mesure d'utiliser votre bibliothèque.
Notes
Si vous voulez faire de votre bibliothèque facilement accessibles à un public plus large, pensez à utiliser JitPac ou JCenter.
Eu la même question et la résoudre de la manière suivante:
Commencer situation:
Cible: vous souhaitez ajouter un module nommé
dataformats
Java Library
)Assurez-vous que votre
settings.gradle
ressembler à ceci (normalement automatiquement):include ':frigoshare', ':frigoShare-backend', ':dataformats'
Assurez-vous (manuellement) que le
build.gradle
les fichiers des modules qui ont besoin d'utiliser votre bibliothèque de la dépendance suivant:dependencies {
...
compile project(':dataformats')
}
But: Android bibliothèque au lieu unique - Partager à travers de multiples projets
http://raevilman.blogspot.com/2016/02/android-library-project-using-android.html
Comme theczechsensation commentaire ci-dessus j'ai essayer de chercher sur Gradle Construire 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. C'est ce que j'ai fait:
- Dans la construction.gradle:
Alors j'ai 2 plus de la version de mon application: pro et essai avec 2 diffrent packageName qui est de 2 identificateur applicationid dans le code ci-dessus afin que je puisse télécharger sur Google Play. J'ai encore juste le code dans la section "principal" et l'utilisation de la getpackageName pour basculer entre la version. Allez simplement sur le lien que j'ai donné pour plus de détails.
Il y a deux moyens plus simples si l'un ne fonctionne pas, veuillez essayer l'autre.
OU
Dans mon cas, à l'aide de MAC OS X 10.11 et Android 2.0, et en faisant exactement ce que Aqib Mumtaz a expliqué.
Mais, à chaque fois, j'ai eu ce message : "Un problème est survenu de la configuration de projet": app'. > Ne peut pas évaluer le module xxx : Configuration avec le nom "default" pas trouvé."
J'ai trouvé que la raison de ce message est que Android 2.0 ne permet pas de créer une bibliothèque directement. Donc, j'ai décidé d'abord de créer une application projet, puis de modifier le build.gradle afin de la transformer comme une bibliothèque.
Cette solution ne fonctionne pas, car un projet de Bibliothèque est très différente de celle d'une application du projet.
Donc, j'ai résolu mon problème comme ceci :
Puis continuer avec la solution proposée par Aqib Mumtaz.
En conséquence, votre source de bibliothèque sera partagé sans avoir à dupliquer les fichiers sources à chaque fois (c'était une hérésie pour moi!)
En espérant que cela vous aidera.