web-dev-qa-db-fra.com

Comment puis-je ajouter un projet de bibliothèque à Android Studio et l'utiliser? (Certaines demandes ne prennent pas effet)

Comment ajouter un projet de bibliothèque à Android Studio et l'utiliser? (Certaines questions ne prennent pas effet) J'essaie de trouver la réponse sur Comment puis-je ajouter un projet de bibliothèque à Android Studio? ou Comment importer un projet relatif avec Android Studio (pas jar) . Mais cela ne fonctionne pas. .Sherlock.Light '. " etc.

Mes outils SDK rev est 22.

17
Marshall

Je vais vous montrer comment faire avec l'exemple de carte. 

Supposons que vous avez importé l'exemple de carte dans Android Studio et créé le module maps correspondant. 

1. Créer un module de bibliothèque Android

Vous devez créer un module de bibliothèque supplémentaire pour GMS, qui inclut toutes les classes dont Google Map a besoin dans un exemple de carte pour compiler votre module map

Le projet de bibliothèque est situé à:

$Android_SDK/extras/google/google_play_services/libproject/google-play-services_lib

Pour ce faire, accédez à File -> Import module et sélectionnez l'emplacement décrit ci-dessus ou l'emplacement de votre projet de bibliothèque. 

Utilisez ensuite la bonne option entre Créer un module à partir de sources existantes ou Importer un module à partir d'un modèle externe. Dans mon cas, cela provient de sources existantes. 

Android Studio détecte les répertoires src/res, jusqu'à présent, tout va bien. 

Il détecte également les répertoires de la bibliothèque, ce qui vous évitera l’importation manuelle de tous les fichiers jar dans lib/(comme google-play-services.jar dans mon cas).

[EDIT: Cela ne vous fait réellement gagner que la moitié du temps car cela crée les bibliothèques mais ne les lie pas dans vos dépendances de modules]

2. Mettez à jour vos dépendances de modules principaux - Module de bibliothèque

La difficulté réside dans le fait que vous n’avez créé que le module, qui n’est pas lié à votre projet en tant que dépendance. 

Pour ce faire, allez à File -> Project structure -> Modules

Sélectionnez votre module principal, maps dans mon cas, puis accédez à l'onglet dependencies sur le côté droit. Cliquez sur + et 3. Module dependency

Sélectionnez le module dont dépend votre module principal et cliquez sur OK. 

3. Mettez à jour vos dépendances de modules principaux - Jars

Pour une raison non expliquée, les activités de mon module maps ne parviennent toujours pas à trouver les classes de l'API. Je dois également ajouter manuellement la dépendance google-play-services.jar à la configuration du module (comme dans 2., mais sélectionnez Bibliothèque au lieu de dépendance du module);

Ce point peut sûrement être automatisé avec le degré mais je ne l'ai pas encore examiné. Lorsque vous utilisez un nouvel IDE, moins vous utilisez d'outils, plus il est facile de suivre les erreurs de configuration. Je suggérerais d'ajouter un seul outil à la fois :)

22
Thibault D.

Les étapes ci-dessous ont fonctionné pour moi dans Android Studio 1.3.1

mylib1 est en projet autonome.

Dans mon projet qui a besoin de mylib1

1) Editez le fichier settings.gradle 

include ':app'
include ':mylib1' ##New line
project(':mylib1').projectDir = new File('../../Android_lib_repo/mylib1/app/') ##New line

../../Android_lib_repo/mylib1 est le répertoire du projet

../../Android_lib_repo/mylib1/app/ est le répertoire du module

2) Editer le fichier build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.bouncycastle:bcprov-jdk16:1.46'
    compile 'com.google.Android.gms:play-services:6.5.87'
    compile 'com.Android.support:appcompat-v7:21.0.3'
    compile 'com.Android.support:support-v4:21.0.3'
    compile project(':mylib1') ##New line
}
7
ChinLoong

Après avoir importé le module 'bibliothèque' dans votre projet (d'après ce que j'ai compris jusqu'à présent, votre espace de travail est le projet et les projets sont les modules du studio intellij/Android), 

  1. Allez à File -> Project structure -> Modules ou select the project and hit F4.-> Modules
  2. Sélectionnez votre module 'bibliothèque' (dans la colonne du milieu) et cliquez sur l'onglet Dépendances (dans la colonne la plus à droite). 
  3. Cochez la case (Exporter) avant le nom du module. (Vérifie ça)
  4. Maintenant, sélectionnez "votre" module et cliquez sur le signe + dans le volet de gauche et sélectionnez "3. Dépendances du module ...", sélectionnez votre projet "bibliothèque" et cliquez sur OK. 
  5. Compilez vos modules maintenant.

Si des erreurs persistent dans votre projet en indiquant que vous ne pouvez pas trouver les classes du projet 'library', cochez la case 'export' située en regard du module dans la dépendance du module 'library'. J'espère que cela pourra aider :)

2
wildnux

Pour quiconque peut simplement trouver cela. 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".

1
drewan50

Si vous utilisez un projet créé dans Studio ou un projet exporté d'ADT vers Gradle, vous devrez éditer le fichier build.gradle pour modifier les dépendances . L'interface utilisateur de la boîte de dialogue Structure du projet affecte uniquement les dépendances de l'EDI. utilisera Gradle qui n'aura pas la configuration des dépendances.

L'édition de build.gradle obligera Studio à le recharger en mettant à jour les dépendances aux deux endroits.

Pour plus d'informations sur les dépendances et la configuration multi-modules (si vous ajoutez également un module en tant que dépendance), veuillez lire http://tools.Android.com/tech-docs/new-build-system/user -guide # TOC-Dependencies-Android-Libraries-and-multi-project-setup

1
Xavier Ducrohet

La modification des dépendances de la bibliothèque par l’interface graphique n’est pas recommandée car cela n’écrit pas ces modifications dans votre fichier build.gradle. Donc, 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 3 projets. Gradle les référencera avec le nom suivant:

  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')
}
1
Shakti Malik