Comment ajouter un projet de bibliothèque (tel que Sherlock ABS) à Android Studio ?
(Pas avec l'ancien bundle basé sur ADT Eclipse, mais avec le nouveau Android Studio .)
Mise à jour pour Android Studio 1.0
Depuis la sortie de Android Studio 1.0 (et de nombreuses versions entre la v1.0 et l'une des premières depuis le moment de ma réponse précédente), certaines choses ont changé.
Ma description est axée sur l'ajout manuel d'un projet de bibliothèque externe via des fichiers Gradle (pour une meilleure compréhension du processus). Si vous souhaitez ajouter une bibliothèque via Android Studio Creator, vérifiez simplement la réponse ci-dessous avec un guide visuel (il existe quelques différences entre Android Studio 1.0 et ceux de captures d’écran, mais le processus est très similaire).
Avant de commencer à ajouter manuellement une bibliothèque à votre projet, pensez à ajouter la dépendance externe. Cela ne dérangera pas la structure de votre projet. Presque toutes les bibliothèques Android connues sont disponibles dans un référentiel Maven et leur installation ne prend qu'une ligne de code dans le fichier app/build.gradle
:
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
Ajout de la bibliothèque
Voici le processus complet d’ajout de la bibliothèque Android externe à notre projet:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
), créez un nouveau dossier: /libs
dans lequel nous placerons nos bibliothèques externes (cette étape n’est pas obligatoire - uniquement pour conserver une structure de projet plus propre)./libs
nouvellement créé. Dans cet exemple, j'ai utilisé bibliothèque PagerSlidingTabStrip (il suffit de télécharger Zip depuis GitHub, de renommer le répertoire de la bibliothèque en "PagerSlidingTabStrip" et de le copier). Voici la nouvelle structure de notre projet:HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabStrip/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
Modifiez settings.gradle en ajoutant votre bibliothèque à include
. Si vous utilisez un chemin personnalisé comme je l'ai fait, vous devez également définir le répertoire du projet pour notre bibliothèque. Tout un fichier settings.gradle devrait ressembler à ceci:
include ':app', ':PagerSlidingTabStrip'
project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
5.1 Si vous rencontrez l’erreur "Configuration par défaut", essayez ceci au lieu de l’étape 5,
include ':app'
include ':libs:PagerSlidingTabStrip'
Dans app/build.gradle
ajoutez notre projet de bibliothèque en tant que dépendance:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:21.0.3'
compile project(":PagerSlidingTabStrip")
}
6.1. Si vous avez suivi l'étape 5.1, suivez ceci au lieu de 6,
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:21.0.3'
compile project(":libs:PagerSlidingTabStrip")
}
Si votre projet de bibliothèque n’a pas de fichier build.gradle
, vous devez le créer manuellement. Voici un exemple de ce fichier:
apply plugin: 'com.Android.library'
dependencies {
compile 'com.Android.support:support-v4:21.0.3'
}
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
Java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
De plus, vous pouvez créer une configuration globale pour votre projet qui contiendra les versions du SDK et créer la version des outils pour chaque module afin de préserver la cohérence. Il suffit de modifier le fichier gradle.properties
et d'ajouter des lignes:
Android_BUILD_MIN_SDK_VERSION=14
Android_BUILD_TARGET_SDK_VERSION=21
Android_BUILD_TOOLS_VERSION=21.1.3
Android_BUILD_SDK_VERSION=21
Vous pouvez maintenant l’utiliser dans vos fichiers build.gradle
(dans les modules app et libraries) comme ci-dessous:
//...
Android {
compileSdkVersion Integer.parseInt(project.Android_BUILD_SDK_VERSION)
buildToolsVersion project.Android_BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion Integer.parseInt(project.Android_BUILD_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.Android_BUILD_TARGET_SDK_VERSION)
}
}
//...
C'est tout. Cliquez simplement sur "synchroniser le projet avec l’icône Gradle" . Votre bibliothèque devrait être disponible dans votre projet.
Google I/O 2013 - Le nouveau Android Système de construction du SDK est une excellente présentation de la construction de Android applications avec Gradle Build System: Comme disait Xavier Ducrohet:
Android Studio est entièrement consacré à l'édition, au débogage et au profilage. Il ne s'agit plus de construire.
Au début, cela peut être un peu déroutant (surtout pour ceux qui travaillent avec Eclipse et n’ont jamais vu la fourmi - comme moi;)), mais à la fin, Gradle nous offre de grandes opportunités et la peine d'apprendre ce système de construction.
Voici le guide visuel:
Mise à jour pour Android Studio 0.8.2:
Dans Android Studio 0.8.2, accédez à Structure du projet -> sous Modules cliquez simplement sur le bouton plus et sélectionnez Importer un projet existant et importer actionbarsherlock
. Puis synchronisez vos fichiers Gradle.
Si vous faites face à l'erreur
Erreur: la révision des outils de génération du SDK (xx.x.x) est trop basse. Le minimum requis est yy.y.y
ouvrez simplement le fichier build.gradle
dans le répertoire actionbarsherlock
et mettez à jour le fichier buildToolsVersion
avec le fichier suggéré.
Android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
Menu Fichier -> Structure du projet ... :
Module -> Module d'importation
Après avoir importé le module de bibliothèque, sélectionnez votre module de projet et ajoutez la dépendance:
Et puis sélectionnez le module importé :
Utilisez le menu Fichier -> Structure du projet -> Modules.
J'ai commencé à l'utiliser aujourd'hui. C'est un peu différent.
Pour Sherlock, vous souhaitez peut-être supprimer leur répertoire de test ou ajouter le fichier junit.jar
au chemin de classe.
Pour importer la bibliothèque à l’aide de gradle, vous devez l’ajouter à la section dependencies
de votre build.gradle
(celui du module).
Par exemple.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:22.1.0'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}
Android Studio est en train de changer.
Il existe une section intitulée "Ouvrir les paramètres du module" si vous cliquez avec le bouton droit de la souris sur un dossier de module dans la section projet de Android Studio (j'utilise la version 0.2.10).
Je considérerais dépendances, Android bibliothèques et configuration multi-projets lectures nécessaires. Veuillez prendre quelques minutes pour le faire.
En particulier, dans le cas d'un projet de bibliothèque non-jar, lisez l'extrait de code source ci-dessus:
Les projets de niveaux peuvent également dépendre d'autres projets de niveaux en utilisant une configuration multi-projets. Une configuration multi-projets fonctionne généralement en disposant tous les projets en tant que sous-dossiers d'un projet racine donné.
Par exemple, donné à la structure suivante:
MyProject/
+ app/
+ libraries/
+ lib1/
+ lib2/
Nous pouvons identifier 3 projets. Gradle les référencera avec le nom suivant:
:app
:libraries:lib1
:libraries:lib2
Chaque projet aura son propre build.gradle déclarant comment il est construit. De plus, il y aura un fichier appelé settings.gradle à la racine déclarant les projets. Cela donne la structure suivante:
MyProject/
| settings.gradle
+ app/
| build.gradle
+ libraries/
+ lib1/
| build.gradle
+ lib2/
| build.gradle
Le contenu de settings.gradle est très simple:
include ':app', ':libraries:lib1', ':libraries:lib2'
Ceci définit quel dossier est en réalité un projet Gradle.
Le projet: app dépendra probablement des bibliothèques. Pour ce faire, vous devez déclarer les dépendances suivantes:
dependencies {
compile project(':libraries:lib1')
}
Veuillez noter que Android l'interface graphique de Studio ont été peu ou pas utilisés pour ce faire.
J'utilise actuellement sous-modules git pour lier la bibliothèque imbriquée au référentiel actuel de la bibliothèque git afin d'éviter un désordre des dépendances.
Je viens de trouver un moyen plus facile (plutôt que d'écrire directement dans les fichiers .gradle).
Ceci est pour Android Studio 1.1.0.
Menu Fichier -> Nouveau module ...:
Cliquez sur "Importer un projet existant".
Sélectionnez la bibliothèque souhaitée et le module souhaité.
Cliquez sur Terminer. Android Studio importera la bibliothèque dans votre projet. Il synchronisera les fichiers Gradle.
Ajoutez le module importé aux dépendances de votre projet.
Faites un clic droit sur le dossier de l'application -> Ouvrir les paramètres du module -> allez dans l'onglet des dépendances -> cliquez sur le bouton '+' -> cliquez sur Module de dépendance.
Le module de bibliothèque sera ensuite ajouté aux dépendances du projet.
???
Profit
Le moyen le plus simple que j'ai trouvé d'inclure un projet de bibliothèque externe est (par exemple, d'inclure une bibliothèque Facebook qui est stockée un répertoire dans le dossier des dépendances):
Dans settings.gradle, ajoutez
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
Dans la section des dépendances build.gradle, ajoutez
compile project ('facebook')
Tout ce qui reste à faire est de synchroniser le projet avec les fichiers Gradle.
Un moyen simple d’ajouter un fichier JAR en tant que bibliothèque à votre projet Android Studio:
a) Copiez vos fichiers * .jar
b) Collez dans le répertoire libs sous vos projets:
c) Ajouter à build.gradle:
dependencies {
...
compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}
b) Si votre projet de l'exemple com.example.MYProject et des bibliothèques com.example.ScanAPI a le même espace de nom com.example, Android Studio vérifie votre construction et crée tous les éléments nécessaires. changements dans votre projet. Après cela, vous pouvez revoir ces paramètres dans le menu Fichier -> Structure du projet .
c) Si votre projet et vos bibliothèques ont un espace de noms différent vous devez cliquer avec le bouton droit de la souris sur la bibliothèque et sélectionner l'option "Ajouter en tant que bibliothèque", puis sélectionner le type dont vous avez besoin.
N'oubliez pas que l'option "Structure du projet" n'effectue aucune modification automatique dans "build.gradle" dans la version actuelle de Android Studio (0.2.3). Peut-être que cette fonctionnalité sera disponible dans les prochaines versions.
Le fichier build.gradle approprié sera alors mis à jour automatiquement.
Ouvrez votre fichier build.gradle et ajoutez une nouvelle règle de construction à la fermeture des dépendances. Par exemple, si vous souhaitez ajouter des services Google Play, la section des dépendances de votre projet ressemblera à ceci:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.Android.gms:play-services:6.5.+'
}
Dans le panneau de projet, Control + cliquez sur le module auquel vous souhaitez ajouter la dépendance et sélectionnez Ouvrir les paramètres du module.
Sélectionnez l'onglet Dépendances, suivi du bouton + dans le coin inférieur gauche. Vous pouvez choisir parmi la liste d’options suivante:
Vous pouvez ensuite entrer plus d'informations sur la dépendance que vous souhaitez ajouter à votre projet. Par exemple, si vous choisissez Library Dependency, Android Studio affiche une liste de bibliothèques parmi lesquelles vous pouvez choisir.
Une fois que vous avez ajouté votre dépendance, vérifiez votre fichier build.gradle au niveau du module. Il devrait avoir automatiquement mis à jour pour inclure la nouvelle dépendance.
Dans le projet où vous voulez ajouter un projet de bibliothèque externe, allez au menu Fichier -> Nouveau -> * Importer un nouveau module **, accédez au projet de bibliothèque que vous souhaitez ajouter à votre projet, sélectionnez pour ajouter le module 'bibliothèque' dans votre projet. Vous obtiendrez settings.gradle dans vos projets, à côté de l'application, de la bibliothèque incluse, par exemple:
include ':app', ':library'
Ajoutez build.gradle (Module: app) dans la section des dépendances:
Compile project (': library')
Reconstruisez le projet, et c'est tout.
* Vous pouvez ajouter autant de bibliothèques (modules) que vous le souhaitez. Dans ce cas, dans settings.gradle, vous aurez:
include ':app', ':lib1', ':lib2', ...
Et dans build.gradle, vous aurez besoin de:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Some other dependencies...
compile project(':lib1')
compile project(':lib2')
...
}
Si vous avez besoin d'accéder aux ressources d'un projet de bibliothèque (comme vous le faites avec ABS), veillez à ajouter le projet/module de bibliothèque en tant que "dépendance de module" au lieu de "bibliothèque".
La modification des dépendances de la bibliothèque via l’interface graphique n’est pas recommandée car cela n’écrit pas ces modifications dans votre fichier build.gradle. Ainsi, votre projet ne sera pas construit à partir de la ligne de commande. Nous devrions éditer le fichier build.gradle directement comme suit.
Par exemple, donné à la structure suivante:
Mon projet/
Nous pouvons identifier trois projets. Gradle les référencera avec les noms suivants:
Le projet: app dépendra probablement des bibliothèques. Pour ce faire, vous devez déclarer les dépendances suivantes:
dependencies {
compile project(':libraries:lib1')
}
Pour ajouter à la réponse: Si IDE ne montre aucune erreur, mais lorsque vous essayez de compiler, vous obtenez quelque chose comme:
No resource found that matches the given name 'Theme.Sherlock.Light'
Votre projet de bibliothèque est probablement compilé en tant que projet d'application. Pour changer cela, allez à:
Menu Fichier -> Structure du projet -> Facettes -> [Nom de la bibliothèque] -> Cochez la case "Module de bibliothèque".
Première manière Cela fonctionne pour MacBook.
Sélectionnez d'abord votre fichier builder.gradle en tant qu'écran donné:
Ajouter des dépendances comme sur l'écran sélectionné:
Sélectionnez le projet de synchronisation.
Si vous obtenez une erreur du type "Projet avec chemin": signature-pad "introuvable dans le projet": app "", veuillez utiliser la deuxième méthode:
Sélectionnez le menu Fichier -> Nouveau -> Module d'importation ... :
Après avoir cliqué sur Module d'importation ,
donne le chemin de la bibliothèque comme mon chemin de MacBook:
Cliquez sur Terminer . Maintenant, votre bibliothèque est ajoutée.
Après avoir importé le module ABS (à partir de Fichier> Structure du projet) et en vous assurant qu'il contient Android 2.2 et la bibliothèque de support v4 en tant que dépendances, le message d'erreur suivant apparaissait toujours lorsque vous @Alex
Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'
J'ai ajouté le module nouvellement importé en tant que dépendance à mon module principal d'application, ce qui a résolu le problème.
Ajoutez simplement le nom de la bibliothèque au bloc des dépendances du fichier build.gradle de votre application.
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
Notez que vous devez utiliser implementation
plutôt que compile
maintenant. Ceci est nouveau avec Android Studio 3.0. Voir ce Q & A pour une explication de la différence.
Pour résoudre ce problème, il vous suffit d’ajouter le chemin de la ressource abs au fichier de construction de votre projet, comme ci-dessous:
sourceSets {
main {
res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
}
}
Donc, je compile à nouveau sans aucune erreur.
Si vous avez Android Studio .0.4.0, vous pouvez créer un nouveau dossier dans votre chemin de construction, YourApp/libraries
. Copiez le fichier JAR. Là dedans, faites un clic droit dessus et "Ajouter en tant que bibliothèque". Maintenant vous avez un popup. Il suffit de sélectionner votre répertoire et appuyez sur OK, et c'est tout.
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl= est le lien Dropbox indiquant comment ajouter un fichier JAR et un projet de bibliothèque dans la dernière version. de Android Studio 1.0.1.
S'il vous plaît voir la documentation avec des screenshots. C'est très facile pour un nouvel utilisateur.
Importez simplement le projet de bibliothèque Android en tant que module et dans Build.gradle.
Appliquer le plugin: 'com.Android.library'
Après cela, suivez ces étapes:
Ouvrez le fichier de l'application du module de construction et ajoutez votre dépendance. Si vous téléchargez la bibliothèque, importez-le et construisez-le simplement.
Sinon, ajoutez des référentiels dans l'application du module Side Gradle:
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
Les premiers dépôts téléchargeront la bibliothèque pour vous.
Et compilez la bibliothèque téléchargée:
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
Si vous créez une bibliothèque, vous devez simplement importer le projet en tant que nouveau module.
Fondamentalement, vous pouvez inclure vos fichiers JAR de trois manières différentes. Le dernier est la bibliothèque distante qui utilise https://bintray.com/ le référentiel en ligne jcenter. Mais si vous le faites de deux manières différentes, le fichier JAR sera inclus physiquement dans votre projet. Veuillez lire ce lien https://stackoverflow.com/a/35369267/5475941 pour plus d'informations. Dans cet article, j’ai expliqué comment importer votre fichier JAR dans Android studio et j’expliquais toutes les méthodes possibles.
En résumé, si c'est comme ça (adresse locale), ils sont téléchargés et ces fichiers JAR sont physiquement dans le projet:
Mais, s’il s’agit d’une adresse Internet telle que celle-ci, il s’agit de bibliothèques distantes (partie bcentray.com jcenter) et elles seront utilisées à distance:
J'espère que ça aide.
J'ai trouvé la solution. C'est si simple. Suivez instructions de froger_mcs .
Assurez-vous que le dossier src est un dossier source dans la structure du projet -> Modules (sources).
J'ai eu une cause différente du problème donc pour les gens:
repositories {
mavenCentral()
}
changez mavenCentral () en jcenter () et ajoutez
allprojects {
repositories {
jcenter()
}
}
Pour Android Studio:
Cliquez sur Build.gradle (module: app) .
Et ajouter pour
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/commons-io-2.4.jar')
}
et dans votre répertoire "app", créez un répertoire, "libs". Ajoutez le fichier yourfile.jar:
Enfin, compilez les fichiers Gradle:
Dans Android Studio, allez dans le dossier de l'application et ouvrez le fichier build.gradle. Ici, vous verrez les dépendances {}. À l'intérieur, vous pouvez ajouter le projet de bibliothèque et synchroniser. Maintenant, après la synchronisation de la bibliothèque, il sera ajouté à votre projet et vous pourrez utiliser ses fonctions et ses classes dans votre projet.
J'ai également rencontré le même problème alors j'ai fait les choses suivantes.
J'importe le projet de bibliothèque dans mon AndroidStudio IDE en tant que module à l'aide de menu Fichier -> Importer les menus du module
Ensuite, je suis allé à mon module principal dans lequel je veux le projet de bibliothèque en tant que projet dépendant
Faites un clic droit sur le module principal (dans mon cas, son nom est app) -> ouvrir le paramétrage du module -> aller dans l'onglet des dépendances -> cliquer sur le bouton + (vous l'obtiendrez à droite de la fenêtre) -> cliquez sur la dépendance du module -> sélectionnez votre projet de bibliothèque dans la liste
Appliquez les modifications et cliquez sur le OK bouton.
Cela a fonctionné pour moi. J'espère que cela aidera les autres aussi.