Comment append un projet de bibliothèque à Android Studio?

Comment append un projet de bibliothèque (tel que Sherlock ABS) à Android Studio ?

(Pas à l’ancien ensemble basé sur ADT Eclipse, mais au nouveau Android Studio .)

Mise à jour pour Android Studio 1.0

Depuis la sortie d’Android Studio 1.0 (et de nombreuses versions entre la version 1.0 et l’une des premières depuis le temps de ma réponse précédente), certaines choses ont changé.

Ma description se concentre sur l’ajout manuel d’un projet de bibliothèque via des fichiers Gradle (pour mieux comprendre le processus). Si vous souhaitez append une bibliothèque via Android Studio Creator, vérifiez 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 à append manuellement une bibliothèque à votre projet, envisagez d’append la dépendance externe. Cela ne gâchera pas la structure de votre projet. Presque chaque bibliothèque Android connue est disponible dans un référentiel Maven et son installation ne prend qu’une seule ligne de code dans le fichier app/build.gradle :

 dependencies { comstack 'com.jakewharton:butterknife:6.0.0' } 

Ajouter la bibliothèque

Voici le processus complet d’ajout d’une bibliothèque Android externe à notre projet:

  1. Créez un nouveau projet via le créateur d’Android Studio. Je l’ai nommé HelloWorld .
  2. Voici la structure de projet originale créée par Android Studio:
 HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ... 
  1. Dans le répertoire racine ( HelloWorld/ ), créez un nouveau dossier: /libs dans lequel nous placerons nos bibliothèques externes (cette étape n’est pas requirejse – uniquement pour conserver une structure de projet plus propre).
  2. Collez votre bibliothèque dans le dossier /libs nouvellement créé. Dans cet exemple, j’ai utilisé la bibliothèque PagerSlidingTabSsortingp (il suffit de télécharger ZIP depuis GitHub, de renommer le répertoire de la bibliothèque en “PagerSlidingTabSsortingp” et de le copier). Voici la nouvelle structure de notre projet:
 HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabSsortingp/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ... 
  1. 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 paramètre entier doit ressembler à ceci:

     include ':app', ':PagerSlidingTabSsortingp' project(':PagerSlidingTabSsortingp').projectDir = new File('libs/PagerSlidingTabSsortingp') 

5.1 Si vous rencontrez une erreur “Configuration par défaut”, essayez ceci au lieu de l’étape 5,

  include ':app' include ':libs:PagerSlidingTabSsortingp' 
  1. Dans app/build.gradle ajoutez notre projet de bibliothèque en tant que dépendance:

     dependencies { comstack fileTree(dir: 'libs', include: ['*.jar']) comstack 'com.android.support:appcompat-v7:21.0.3' comstack project(":PagerSlidingTabSsortingp") } 

6.1. Si vous avez suivi l’étape 5.1, alors suivez ceci au lieu de 6,

  dependencies { comstack fileTree(dir: 'libs', include: ['*.jar']) comstack 'com.android.support:appcompat-v7:21.0.3' comstack project(":libs:PagerSlidingTabSsortingp") } 
  1. Si votre projet de bibliothèque n’a pas de fichier build.gradle , vous devez le créer manuellement. Voici l’exemple de ce fichier:

      apply plugin: 'com.android.library' dependencies { comstack 'com.android.support:support-v4:21.0.3' } android { comstackSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { minSdkVersion 14 targetSdkVersion 21 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] res.srcDirs = ['res'] } } } 
  2. De plus, vous pouvez créer une configuration globale pour votre projet qui contiendra les versions du SDK et la version des outils de génération pour que chaque module conserve sa cohérence. gradle.properties fichier gradle.properties 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 

    Maintenant, vous pouvez l’utiliser dans vos fichiers build.gradle (dans les modules app et bibliothèques) comme ci-dessous:

     //... android { comstackSdkVersion 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) } } //... 
  3. C’est tout. Il suffit de cliquer sur ‚synchroniser le projet avec l’icône Gradle ‘ synchroniser avec Gradle . Votre bibliothèque devrait être disponible dans votre projet.

Google I / O 2013 – Le nouveau système de création de SDK Android est une excellente présentation de la création d’applications Android avec Gradle Build System: Comme le disait Xavier Ducrohet:

Android Studio est tout au sujet de l’édition, du débogage et du profilage. Il ne s’agit plus de construire.

Au début, cela peut sembler un peu déroutant (surtout pour ceux qui travaillent avec Eclipse et qui n’ont jamais vu la fourmi comme moi), mais à la fin, Gradle nous offre d’excellentes opportunités et cela vaut la peine d’apprendre ce système de compilation.

Voici le guide visuel:

Mise à jour pour Android Studio 0.8.2:

Dans Android Studio 0.8.2, accédez à Structure de projet -> sous Modules, appuyez simplement sur le bouton plus et sélectionnez Importer un projet existant et import actionbarsherlock . Puis synchronisez vos fichiers Gradle.

Si vous rencontrez l’erreur

Erreur: La révision des outils de génération du SDK (xx.xx) est trop faible. Le minimum requirejs est aaaa

il suffit d’ouvrir le fichier build.gradle dans le répertoire actionbarsherlock et de mettre à jour le buildToolsVersion vers le buildToolsVersion suggéré.

 android { comstackSdkVersion 19 buildToolsVersion 'yy.yy' 

Android Studio 0.8.2


Menu Fichier -> Structure du projet … :

Premier

Module -> Module d’importation

Seconde

Après avoir importé le module de bibliothèque, sélectionnez votre module de projet et ajoutez la dépendance:

Troisième

Et puis sélectionnez le module importé :

La suite

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 append le fichier junit.jar au classpath.

Pour importer la bibliothèque à l’aide de gradle, vous pouvez l’append à la section dependencies de votre build.gradle (celui du module).

Par exemple

 dependencies { comstack fileTree(dir: 'libs', include: ['*.jar']) comstack 'com.android.support:appcompat-v7:22.1.0' comstack 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' } 

Android Studio change.

Il existe une section intitulée “Paramètres du module ouvert” 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 les dépendances, les bibliothèques Android et la lecture nécessaire à la configuration multi-projets . Veuillez prendre quelques minutes pour le faire.

En particulier, dans le cas d’un projet de bibliothèque non-jar, lisez l’extrait suivant de la source ci-dessus:

Les projets Gradle peuvent également dépendre d’autres projets de graduation en utilisant une configuration multi-projets. Une configuration multi-projets fonctionne généralement en ayant 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 sera 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, ce qui se fait en déclarant les dépendances suivantes:

 dependencies { comstack project(':libraries:lib1') } 

Veuillez noter qu’il y avait 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 nestede à la bibliothèque git repo proprement dite afin d’éviter un problème de dépendance.

Je viens de trouver un moyen plus simple (plutôt que d’écrire directement dans les fichiers .gradle).

Ceci est pour Android Studio 1.1.0.

  1. Menu Fichier -> Nouveau module … :

    Importer un projet existant

    Cliquez sur “Importer un projet existant”.

  2. Sélectionnez la bibliothèque souhaitée et le module souhaité.

  3. Cliquez sur Terminer. Android Studio importera la bibliothèque dans votre projet. Il synchronisera les fichiers dégradés.

  4. Ajoutez le module importé aux dépendances de votre projet.

    Faites un clic droit sur le dossier de l’application -> Paramètres du module ouvert -> 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.

    Ajouter un module de bibliothèque

  5. ???

  6. Profit

La manière la plus simple de trouver un projet de bibliothèque externe est (par exemple, d’inclure une bibliothèque Facebook dans laquelle un répertoire est stocké dans le dossier des dépendances):

  1. Dans settings.gradle add

     include ':facebook' project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK') 
  2. Dans la section des dépendances build.gradle, ajoutez

     comstack project ('facebook') 

Il ne rest plus qu’à synchroniser le projet avec des fichiers graduels.

Un moyen simple d’append un fichier JAR en tant que bibliothèque à votre projet Android Studio:

a) Copiez vos fichiers * .jar

b) Coller dans le répertoire libs de vos projets:

Entrez la description de l'image ici

c) Ajouter à build.gradle:

 dependencies { ... comstack files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..) } 

b) Si votre projet à partir 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 examiner ces parameters dans le menu Fichier -> Structure du projet .

c) Si votre projet et les 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 en tant que bibliothèque” et sélectionner le type dont vous avez besoin.

N’oubliez pas que l’option “Structure du projet” ne modifie pas automatiquement “build.gradle” dans la version actuelle d’Android Studio (0.2.3). Peut-être que cette fonctionnalité sera disponible dans les prochaines versions.

Option 1: déposer des fichiers dans le répertoire / des bibliothèques du projet

Le fichier build.gradle correspondant sera alors automatiquement mis à jour.

Option 2: Modifier le fichier build.gradle manuellement

Ouvrez votre fichier build.gradle et ajoutez une nouvelle règle de génération à la fermeture des dépendances. Par exemple, si vous souhaitez append des services Google Play, la section des dépendances de votre projet devrait ressembler à ceci:

 dependencies { comstack fileTree(dir: 'libs', include: ['*.jar']) comstack 'com.google.android.gms:play-services:6.5.+' } 

Option 3: Utiliser l’interface utilisateur d’Android Studio

Dans le panneau Projet, cliquez sur Contrôle + cliquez sur le module auquel vous souhaitez append la dépendance et sélectionnez Ouvrir les parameters du module.

Entrez la description de l'image ici

Sélectionnez l’onglet Dépendances, suivi du bouton + dans le coin inférieur gauche. Vous pouvez choisir parmi les options suivantes:

  • Dépendance de la bibliothèque
  • Dépendance de fichier
  • Dépendance du module

Vous pouvez ensuite entrer plus d’informations sur la dépendance à append à votre projet. Par exemple, si vous choisissez Dépendance de la 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 devrait avoir été automatiquement mis à jour pour inclure la nouvelle dépendance.

La source

Voilà comment cela fonctionne pour moi dans Android Studio 1.5

Dans le projet où vous souhaitez append 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 append à votre projet, sélectionnez pour append 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' 

Ajouter dans build.gradle (Module: app) dans la section dépendances:

Comstack project (‘: library’)

Reconstruisez le projet, et c’est tout.

* Vous pouvez append 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 devrez avoir:

 dependencies { comstack fileTree(dir: 'libs', include: ['*.jar']) // Some other dependencies... comstack project(':lib1') comstack project(':lib2') ... } 

Si vous avez besoin d’accéder aux ressources d’un projet de bibliothèque (comme vous le faites avec ABS), veillez à append le projet / module de bibliothèque en tant que “dépendance de module” au lieu d’une “bibliothèque”.

  1. Appuyez sur F4 pour afficher Structure du projet , cliquez sur les bibliothèques ou les bibliothèques globales, puis cliquez sur + pour append le fichier JAR.
  2. Cliquez sur Modules pour append ce que vous voulez, sélectionnez l’onglet Dépendances , cliquez sur + et ajoutez Bibliothèque.

Vous pouvez le faire facilement. Allez dans le menu Fichier -> Nouveau -> Importer le module … :

Entrez la description de l'image ici

Recherchez le répertoire contenant le module. Cliquez sur Terminer:

Entrez la description de l'image ici

Accédez à la structure du projet et ajoutez la dépendance du module :

Entrez la description de l'image ici

Remarque: Si vous recevez une erreur SDK, mettez-la à jour.

Pour append à la réponse: Si l’EDI ne montre aucune erreur, mais que vous essayez de comstackr, 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 “Module Bibliothèque”.

Il est déconseillé de modifier les dépendances de bibliothèque via l’interface graphique 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 devons éditer le fichier build.gradle directement comme suit.

Par exemple, donné à la structure suivante:

Mon projet/

  • app /
  • bibliothèques /
    • lib1 /
    • lib2 /

Nous pouvons identifier trois projets. Gradle les référencera avec les noms suivants:

  1. : app
  2. : bibliothèques: lib1
  3. : bibliothèques: lib2

Le projet: app est susceptible de dépendre des bibliothèques, ce qui se fait en déclarant les dépendances suivantes:

 dependencies { comstack project(':libraries:lib1') } 

Après avoir importé le module ABS (à partir de Fichier> Structure du projet) et s’être assuré des dépendances d’Android 2.2 et de Support Library v4, l’erreur suivante s’était encore produite lorsque vous avez @Alex

 Error resortingeving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar' 

J’ai ajouté le module nouvellement importé comme dépendance à mon module d’application principal et cela a résolu le problème.

Première manière Cela fonctionne pour MacBook.

Sélectionnez d’abord votre fichier builder.gradle comme écran donné:

Entrez la description de l'image ici

Ajoutez des dépendances comme sur l’écran sélectionné:

Entrez la description de l'image ici

Sélectionnez le projet de synchronisation.

Si vous obtenez une erreur telle que “Projet avec chemin”: signature-pad “n’a pas pu être trouvé dans le projet ‘: app'”, veuillez utiliser la deuxième méthode:

Sélectionnez le menu Fichier -> Nouveau -> Importer le module … :

Entrez la description de l'image ici

Après avoir cliqué sur Importer le module ,

Entrez la description de l'image ici

donner le chemin de la bibliothèque comme comme mon chemin MacBook:

Entrez la description de l'image ici

Cliquez sur Terminer . Maintenant, votre bibliothèque est ajoutée.

Pour résoudre ce problème, il vous suffit d’append le chemin d’access à la ressource abs dans votre fichier de génération de projet, comme ci-dessous:

 sourceSets { main { res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res'] } } 

Donc, je comstack à 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à, cliquez avec le bouton droit sur “Ajouter comme bibliothèque”. Maintenant, vous avez une fenêtre contextuelle. Il suffit de sélectionner votre répertoire et appuyez sur OK, et c’est tout.

J’ai trouvé la solution. C’est si simple Suivez les instructions de froger_mcs .

Assurez-vous de placer le dossier src dans un dossier Source dans Structure de projet -> Modules (Sources).

Entrez la description de l'image ici

Un exemple d’ajout réussi d’une autre bibliothèque (PullToRefresh). Fonctionne également pour libproject ABS.

Cette question SO

Ce post

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/ référentiel en ligne jcenter. Mais si vous le faites d’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 un studio Android et j’ai expliqué tous les moyens possibles.

En résumé, si c’est comme ça (adresse locale), elles sont téléchargées et ces fichiers JAR sont physiquement présents dans le projet:

entrer la description de l'image ici

Mais si c’est une adresse Internet comme celle-ci, ce sont des bibliothèques distantes (bintray.com jcenter part) et elles seront utilisées à distance:

entrer la description de l'image ici

J’espère que ça aide.

Ouvrez le fichier d’application du module de graduation de la génération et ajoutez votre dépendance. Si vous téléchargez la bibliothèque, importez-la et comstackz-la simplement.

Sinon, ajoutez des référentiels dans l’application du module de gradation latérale:

 repositories { maven { url 'http://clinker.47deg.com/nexus/content/groups/public' } } 

Les premiers repositorys téléchargeront la bibliothèque pour vous.

Et comstackz la bibliothèque téléchargée:

  comstack ('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.

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:

  1. Cliquez avec le bouton droit sur Module et sélectionnez Ouvrir les parameters du module
  2. Sélectionnez les dépendances, cliquez sur + , sélectionnez les dépendances de la bibliothèque et ajoutez le module précédemment importé.

https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 est le lien Dropbox sur la façon d’append un fichier JAR et un projet de bibliothèque dans la dernière version d’Android Studio 1.0.1.

S’il vous plaît voir la documentation avec des captures d’écran. C’est très facile pour un nouvel utilisateur.

Android Studio 3.0

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 devez utiliser la implementation plutôt que de comstack maintenant. Ceci est nouveau avec Android Studio 3.0. Voir cette Q & R pour une explication de la différence.

Dans Android Studio, accédez au dossier app et ouvrez le fichier build.gradle. Ici, vous verrez les dépendances {}. A l’intérieur, vous pouvez append le projet de bibliothèque et le synchroniser. Maintenant, après la synchronisation de la bibliothèque, elle sera ajoutée à votre projet et vous pourrez utiliser ses fonctions et ses classes dans votre projet.

Pour Android Studio:

Entrez la description de l'image ici

Cliquez sur Build.gradle (module: app) .

Et append pour

 dependencies { comstack fileTree(include: ['*.jar'], dir: 'libs') comstack files('libs/commons-io-2.4.jar') } 

et dans votre répertoire “app”, créez un répertoire “libs”. Ajoutez le fichier yourfile.jar:

Entrez la description de l'image ici

Enfin, comstackz les fichiers Gradle:

Entrez la description de l'image ici

La cause du problème était différente pour les gens:

 repositories { mavenCentral() } 

changer mavenCentral () en jcenter () et append

 allprojects { repositories { jcenter() } } 

J’ai aussi rencontré le même problème alors j’ai fait les choses suivantes.

  1. 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

  2. Puis je suis allé à mon module principal dans lequel je veux que le projet de bibliothèque soit un projet dépendant

  3. Cliquez avec le bouton droit sur le module principal (dans mon cas, son nom est app ) -> ouvrez le paramétrage du module -> ouvrez l’onglet dépendances -> cliquez sur le bouton + (cliquez sur la dépendance) – > sélectionnez votre projet de bibliothèque dans la liste

Appliquez les modifications et cliquez sur le bouton OK .

Cela a fonctionné pour moi. J’espère que cela aidera les autres aussi.

En effet, au fur et à mesure que 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, je devais deviner ce qui fonctionnerait pour Android Studio 1.1.0 .

  1. Avec votre souris, sélectionnez le projet au niveau principal (c’est là que s’affiche le nom de votre application).

  2. Cliquez avec le bouton droit de la souris et sélectionnez les options de menu Nouveau, Dossier, Dossier des actifs .

  3. Après avoir créé le dossier assets, collez-le ou copiez-le, quel que soit le fichier JAR dont vous avez besoin pour votre bibliothèque.

  4. Dans le menu principal d’Android Studio (en haut de l’écran), sélectionnez Fichier -> Structure du projet .

  5. Sélectionnez ensuite le nom de votre projet et accédez à l’onglet Dépendances .

  6. Cliquez sur le signe plus ( + ) en bas à gauche de la boîte de dialog et sélectionnez la dépendance du fichier.

  7. Enfin, ouvrez le dossier des ressources récemment créé, sélectionnez les fichiers JAR que vous avez copiés, puis cliquez sur Appliquer et sur OK .

Nettoyez et reconstruisez votre projet.