web-dev-qa-db-fra.com

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

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

780

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:

  1. Créez un nouveau projet via Android Studio Creator. 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 obligatoire - 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é 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
      ...
  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. 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'
  1. 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")
    }
  1. 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']
                }
            }
        }
    
  2. 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)
        }
    }
    //...
    
  3. C'est tout. Cliquez simplement sur "synchroniser le projet avec l’icône Gradle" synchronise with 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.

709
froger_mcs

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'

Android Studio 0.8.2


Menu Fichier -> Structure du projet ... :

First

Module -> Module d'importation

Second

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

Third

Et puis sélectionnez le module importé :

Forth

272
Sam Rad

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

110
Blackbelt

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.

51
Jonathan Lin

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.

  1. Menu Fichier -> Nouveau module ...:

    Import Existing Project

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

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

    Add library module

  5. ???

  6. Profit

24
René Michel

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):

  1. Dans settings.gradle, ajoutez

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
    
  2. 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.

16
Vilen

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:

Enter image description here

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.

14
Eugene Bosikov

Option 1: Déposer des fichiers dans le répertoire libs/du projet

Le fichier build.gradle approprié sera alors mis à jour automatiquement.

Option 2: Modifier le fichier build.gradle manuellement

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.+'
   }

Option 3: Utiliser l'interface utilisateur de Android Studio

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.

Enter image description here

Sélectionnez l'onglet Dépendances, suivi du bouton + dans le coin inférieur gauche. Vous pouvez choisir parmi la liste d’options suivante:

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

Source

11
pathe.kiran

Voici comment cela fonctionne pour moi dans Android Studio 1.5 +

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')
    ...
}
9
pandabear

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

8
drewan50
  1. Presse F4 pour afficher Structure du projet, cliquez sur bibliothèques ou bibliothèques globales, puis cliquez sur + pour ajouter le fichier JAR.
  2. Cliquez sur Modules, puis sur jar, sélectionnez l'onglet Dépendances, cliquez sur +et ajoutez Library.
7
Crossle Song

Vous pouvez le faire facilement. Aller au menu Fichier -> Nouveau -> Module d'importation ... :

Enter image description here

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

Enter image description here

Aller à Structure du projet et ajouter Module de dépendance :

Enter image description here

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

6
Adiii

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/

  • 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 dépendra probablement des bibliothèques. Pour ce faire, vous devez déclarer les dépendances suivantes:

dependencies {
    compile project(':libraries:lib1')
}
5
Shakti Malik

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

5
Dalmas

Première manière Cela fonctionne pour MacBook.

Sélectionnez d'abord votre fichier builder.gradle en tant qu'écran donné:

Enter image description here

Ajouter des dépendances comme sur l'écran sélectionné:

Enter image description here

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

Enter image description here

Après avoir cliqué sur Module d'importation ,

Enter image description here

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

Enter image description here

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

4
Hemant

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.

4
Erwan

Android Studio 3.0

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.

3
Suragch

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.

3
azh

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.

3
Braunster

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.

2
ankitbumblebee

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:

  1. Cliquez avec le bouton droit sur Module et sélectionnez Ouvrir les paramètres 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é.
2
Pankaj kumar

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.

2
Jinu

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:

enter image description here

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:

enter image description here

J'espère que ça aide.

2
Vahid

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

Enter image description here

2
passsy

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()
    }
}
1
jobbert

Pour Android Studio:

Enter image description here

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:

Enter image description here

Enfin, compilez les fichiers Gradle:

Enter image description here

1
Mourad MAMASSI

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.

1

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

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

  2. Ensuite, je suis allé à mon module principal dans lequel je veux le projet de bibliothèque en tant que projet dépendant

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