Comment ajouter un projet de bibliothèque (tel que Sherlock ABS) à Android Studio ?
(Pas pour l'ancien bundle basé sur ADT Eclipse, mais pour le nouveau Android Studio .)
Gradle
, consultez cette réponse StackOverflow .
Comment ajouter un projet de bibliothèque (tel que Sherlock ABS) à Android Studio ?
(Pas pour l'ancien bundle basé sur ADT Eclipse, mais pour le nouveau Android Studio .)
Gradle
, consultez cette réponse StackOverflow .
Réponses:
Mise à jour pour Android Studio 1.0
Depuis la sortie d'Android Studio 1.0 (et de nombreuses versions entre la v1.0 et l'une des premières de l'époque de ma réponse précédente), certaines choses ont changé.
Ma description se concentre sur l'ajout manuel de projet de bibliothèque externe via des fichiers Gradle (pour mieux comprendre le 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 des différences entre Android Studio 1.0 et celles des captures d'écran, mais le processus est très similaire).
Avant de commencer à ajouter une bibliothèque à votre projet à la main, pensez à ajouter la dépendance externe. Cela ne gâchera pas la structure de votre projet. Presque toutes les bibliothèques Android connues sont disponibles dans un référentiel Maven et son installation ne prend qu'une seule ligne de code dans le app/build.gradle
fichier:
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
Ajout de la bibliothèque
Voici le processus complet d'ajout d'une 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 garder une structure de projet plus propre)./libs
dossier nouvellement créé . Dans cet exemple, j'ai utilisé la 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. Un ensemble settings.gradle devrait ressembler à ci-dessous:
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'
Pour app/build.gradle
ajouter 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 build.gradle
fichier, 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 la version des outils de construction pour chaque module pour garder la cohérence. Modifiez simplement le gradle.properties
fichier et ajoutez 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 build.gradle
fichiers (dans les modules d'application et de bibliothèques) 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 ‚synchronisez le projet avec l'icône Gradle ' . Votre bibliothèque doit être disponible dans votre projet.
Google I / O 2013 - Le nouveau système de création de SDK Android est une excellente présentation sur la création d'applications Android avec Gradle Build System: Comme l'a dit Xavier Ducrohet:
Android Studio se concentre sur l'édition, le débogage et le 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 donne de grandes opportunités et cela vaut la peine d'apprendre ce système de construction.
Global libraries
(# 10: "maintenant aller aux bibliothèques globales")? En dehors de cela, cela fonctionne comme décrit :) Merci beaucoup. (J'espère que Google va s'y mettre - une tâche aussi simple est extrêmement complexe pour le moment)
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, appuyez simplement sur le bouton plus et sélectionnez Importer le projet existant et importer actionbarsherlock
. Synchronisez ensuite vos fichiers Gradle.
Si vous faites face à l'erreur
Erreur: la révision des outils de construction du SDK (xx.xx) est trop faible. Le minimum requis est aaaa
il suffit d'ouvrir le build.gradle
fichier dans le actionbarsherlock
répertoire et de le mettre buildToolsVersion
à jour vers celui suggéré.
android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
Fichier de menu -> 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é :
Select your project module and add dependency
dependencies { // ... compile project(':library') }
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 junit.jar
fichier au chemin de classe.
Pour importer la bibliothèque à l'aide de gradle, vous pouvez avoir à l'ajouter à la dependencies
section de votre build.gradle
(celle 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 change.
Il existe une section nommée "Ouvrir les paramètres du module" si vous cliquez avec le bouton droit sur un dossier de module dans la section projet d'Android Studio (j'utilise la version 0.2.10).
Modules
section dans la Project Structure
fenêtre.
Je considérerais les dépendances, les bibliothèques Android et la configuration multi-projets comme une lecture nécessaire. 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 suivant à partir de la source ci-dessus:
Les projets Gradle peuvent également dépendre d'autres projets Gradle en utilisant une configuration multi-projets. Une configuration multi-projets fonctionne généralement en ayant tous les projets comme 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'
Cela définit quel dossier est en fait un projet Gradle.
Le projet: app est susceptible de dépendre des bibliothèques, et cela se fait en déclarant les dépendances suivantes:
dependencies {
compile project(':libraries:lib1')
}
Veuillez noter qu'il n'y avait que peu ou pas d'utilisation de l'interface graphique d'Android Studio pour y arriver.
J'utilise actuellement des sous-modules git pour lier la bibliothèque imbriquée au référentiel git de la bibliothèque réelle afin d'éviter un gâchis de dépendance.
Je viens de trouver un moyen plus simple (plutôt que d'écrire directement dans les fichiers .gradle).
C'est pour Android Studio 1.1.0.
Fichier de menu -> Nouveau module ... :
Cliquez sur "Importer un projet existant".
Sélectionnez la bibliothèque et le module souhaités.
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 la dépendance du module.
Le module de bibliothèque sera alors ajouté aux dépendances du projet.
???
Profit
La manière la plus simple que j'ai trouvée pour inclure un projet de bibliothèque externe est (par exemple pour 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 de build.gradle, ajoutez
compile project ('facebook')
Il ne reste plus qu'à synchroniser le projet avec les fichiers de notes.
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 noms com.example , Android Studio vérifiera votre build et créera toutes les modifications nécessaires 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 sur la bibliothèque et sélectionner l'option "Ajouter comme bibliothèque" et 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 d'Android Studio (0.2.3). Peut-être que cette fonctionnalité sera disponible dans les prochaines versions.
Le fichier build.gradle correspondant 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 les 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 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, puis le 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 Dépendance de bibliothèque, 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 aurait dû être mis à jour automatiquement pour inclure la nouvelle dépendance.
Dans le projet où vous souhaitez ajouter un projet de bibliothèque externe, allez dans le 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, quelque chose comme ceci:
include ':app', ':library'
Ajoutez build.gradle (Module: app) dans la section des dépendances:
Projet de compilation (': bibliothèque')
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 d'avoir:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Some other dependencies...
compile project(':lib1')
compile project(':lib2')
...
}
Vous pouvez le faire facilement. Allez dans le menu Fichier -> Nouveau -> Module d'importation ... :
Recherchez le répertoire contenant le module. Cliquez sur Terminer:
Accédez à la structure du projet et ajoutez la dépendance du module :
Remarque: Si vous recevez une erreur SDK, mettez-la à jour.
La modification des dépendances de bibliothèque via l'interface graphique n'est pas recommandée car cela n'écrit pas ces modifications dans votre fichier build.gradle. Votre projet ne sera donc pas construit à partir de la ligne de commande. Nous devons modifier 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 est susceptible de dépendre des bibliothèques, et cela se fait en déclarant les dépendances suivantes:
dependencies {
compile project(':libraries:lib1')
}
Pour ajouter à la réponse: si l'EDI n'affiche 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 sur:
Menu Fichier de -> Structure du projet -> Facettes -> [Nom de la bibliothèque] -> Cochez "Module de bibliothèque".
Première voie Cela fonctionne pour MacBook.
Sélectionnez d'abord votre fichier builder.gradle comme écran donné:
Ajoutez 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 d'accès ': signature-pad' est 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 Importer le module ,
donner le chemin de la bibliothèque comme mon chemin MacBook:
Cliquez sur Terminer . Maintenant, votre bibliothèque est ajoutée.
Après avoir importé le module ABS (depuis Fichier> Structure du projet) et m'être assuré qu'il a Android 2.2 et la bibliothèque de support v4 comme dépendances, j'obtenais toujours l'erreur suivante 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 d'application principal et cela a résolu le problème.
Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.
. Il semble que mon projet principal ne voit pas les ressources du projet de bibliothèque (ABS). L'IDE reconnaît cependant les références aux classes et aux ressources. Capture d'écran
Ajoutez simplement le nom de la bibliothèque au bloc de dépendances du fichier build.gradle de votre application .
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
Notez que vous devriez utiliser implementation
plutôt que compile
maintenant. C'est nouveau avec Android Studio 3.0. Voir ce Q & A pour une explication de la différence.
com.android.tools.build:gradle:2.3.3
au lieu de 3.0.0 dans Android Studio 3 si vous souhaitez continuer à utiliser "compiler".
Pour résoudre ce problème, il vous suffit d'ajouter le chemin d'accès aux ressources abs à votre fichier de construction de 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 est .0.4.0, vous pouvez créer un nouveau dossier dans votre chemin de construction, YourApp/libraries
. Copiez le fichier JAR. Là, faites un clic droit dessus et "Ajouter en tant que bibliothèque". Vous avez maintenant une fenêtre contextuelle. Sélectionnez simplement votre répertoire et appuyez sur OK, et c'est tout.
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, procédez comme suit:
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 est le lien Dropbox expliquant comment ajouter un fichier JAR et un projet de bibliothèque dans la dernière version d'Android Studio 1.0.1.
Veuillez consulter la documentation avec des captures d'écran. C'est très simple pour un nouvel utilisateur.
J'ai trouvé la solution. C'est tellement simple. Suivez les instructions de froger_mcs .
Assurez-vous que vous faites du dossier src un dossier source dans Project Structure -> Modules (Sources).
Fondamentalement, vous pouvez inclure vos fichiers JAR de trois manières différentes. Le dernier est une bibliothèque distante qui utilise le référentiel en ligne https://bintray.com/ jcenter. Mais, si vous le faites de l'une des deux autres manières, 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'ai expliqué toutes les manières 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 comme celle-ci, ce sont des bibliothèques distantes (partie jinter de bintray.com) et elles seront utilisées à distance:
J'espère que ça aide.
Ouvrez le fichier d'application du module build gradle et ajoutez votre dépendance. Si vous téléchargez la bibliothèque, importez et créez en tant que gradle.
Sinon, ajoutez des référentiels dans l'application du module latéral Gradle:
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
Les premiers référentiels 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, il vous suffit d'importer le projet en tant que nouveau module d'importation.
Dans Android Studio, accédez au 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 avoir synchronisé la bibliothèque, elle sera ajoutée à votre projet et vous pourrez utiliser ses fonctions et ses classes dans votre projet.
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:
J'ai également rencontré le même problème, puis j'ai suivi les choses.
J'importe le projet de bibliothèque dans mon IDE AndroidStudio en tant que module en utilisant le menu Fichier -> Importer les menus du module
Ensuite, je suis allé à mon module principal dans lequel je veux que le projet de bibliothèque soit un projet dépendant
Faites un clic droit sur le module principal (dans mon cas, son nom est app ) -> ouvrez le paramètre du module -> allez dans l'onglet des dépendances -> cliquez sur le bouton + (vous l'obtiendrez sur le côté droit 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 OKbouton.
Ça a marché pour moi. J'espère que cela aidera aussi les autres.
Ajoutez ceci dans votre fichier gradle de build:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0'
}
En effet, comme les versions changent, il en va de même pour l'interface utilisateur et les options disponibles dans le menu. Après avoir lu la plupart des réponses à ces questions, j'ai dû deviner ce qui fonctionnerait pour Android Studio 1.1.0 .
Avec votre souris, sélectionnez le projet au niveau principal (c'est là qu'il affiche le nom de votre application).
Cliquez avec le bouton droit et sélectionnez les options de menu Nouveau, Dossier, Dossier des actifs .
Après avoir créé le dossier des ressources, collez-le ou copiez-le, quel que soit le fichier JAR dont vous avez besoin pour votre bibliothèque.
Dans le menu principal d'Android Studio (en haut de l'écran), sélectionnez Fichier -> Structure du projet .
Sélectionnez ensuite le nom de votre projet et accédez à l' onglet Dépendances .
Cliquez sur le signe plus ( +) en bas à gauche de la boîte de dialogue et sélectionnez la dépendance de fichier.
Enfin, ouvrez le dossier d'actifs récemment créé, sélectionnez les fichiers JAR que vous avez copiés, puis cliquez sur Appliquer et OK.
Nettoyez et reconstruisez votre projet.