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


796

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


28
Ouais, comprendre cela était beaucoup plus déroutant qu'il n'aurait dû l'être ... pas comme si c'était mieux dans Eclipse.
Daniel Smith

4
La vidéo YouTube Comment ajouter des bibliothèques à Android Studio explique le processus.

2
Si vous utilisez Gradle, consultez cette réponse StackOverflow .
grue

2
Voici une vidéo que j'ai trouvée très utile: youtube.com/watch?v=1MyBO9z7ojk
Simon

Réponses:


718

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

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:

  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: /libsdans lequel nous placerons nos bibliothèques externes (cette étape n'est pas obligatoire - uniquement pour garder une structure de projet plus propre).
  2. Collez votre bibliothèque dans le /libsdossier 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
      ...
  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 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'
  1. Pour app/build.gradleajouter 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 build.gradlefichier, 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 la version des outils de construction pour chaque module pour garder la cohérence. Modifiez simplement le gradle.propertiesfichier 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.gradlefichiers (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)
        }
    }
    //...
  3. C'est tout. Cliquez simplement sur ‚synchronisez le projet avec l'icône Gradle ' synchroniser avec 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.


6
hé là, vous avez parfaitement expliqué le vrai problème. voter votre réponse pour que les autres puissent la voir. une chose mineure qui n'a pas fonctionné de mon côté est de référencer la bibliothèque de support dans le build.gradle de la dépendance. car il s'avère que ': Project / libs ...' n'a pas fonctionné pour une raison quelconque. j'ai dû supprimer l'identification du projet. donc 'libs / ...'. et il a bien compilé. une note est que ces deux façons de référencer des chemins ou des projets prêtent à confusion. j'espère qu'un schéma simple et unifié sera mis en place à l'avenir. il n'y a aucune raison pour que la solution d'origine ne fonctionne pas.
victor n.

9
+1. Je me débattais avec ça depuis longtemps. Comme l'a dit victor n , référencer le pot de support du projet principal à partir du module actionbarsherlock ne fonctionne pas. J'ai dû faire ce qui suit pour le faire fonctionner ... (1) Supprimer les fichiers de compilation ('libs / android-support-v4.jar') du build.gradle du projet. Le module principal ne devrait avoir qu'un projet de compilation (": bibliothèques: actionbarsherlock") . (2) Ajoutez des fichiers de compilation ('libs / android-support-v4.jar') au lieu de fichiers de compilation (': HelloWorld / libs / android-support-v4.jar') dans build.gradle de actionbarsherlock.
Akbar ibrahim

3
Où est 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)
Konrad Morawski

8
Pourquoi n'ai-je pas de section "Importer le module", au choix où vous nous dirigez? J'utilise Android Studio 0.3.1
alicanbatur

5
L'option d'importation du module est manquante !!
amalBit

274

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.gradlefichier dans le actionbarsherlockrépertoire et de le mettre buildToolsVersionà jour vers celui suggéré.

android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'

Android Studio 0.8.2


Fichier de menu -> Structure du projet ... :

Première

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

Forth


31
L'option d'importation de module n'est pas disponible dans Android Studio4.3
amalBit

3
La clé pour moi de faire ce travail et de résoudre les erreurs de package non trouvé était l'étapeSelect your project module and add dependency dependencies { // ... compile project(':library') }
toobsco42

7
Cela copiera le module de bibliothèque dans votre projet, ce qui n'est pas ce que vous voulez si vous voulez une base de code commune partagée entre plusieurs projets
Rémy DAVID

@amalBit sont ... êtes-vous du futur? Mais sérieusement, ils doivent simplifier les choses comme dans Eclipse ADT; qui veut frapper un repo tiers et compiler du code (potentiellement) arbitraire dans chaque build? Cela sape sérieusement les protocoles d'assurance qualité et de gel de code
CCJ

C'était il y a bien longtemps lors des jours bêta d'Android Studio 0.4.3. En ce qui concerne le repo d'adhésion tiers, je dirais, évitez d'utiliser +. Spécifiez simplement la version que vous souhaitez. Si vous ne pouvez toujours pas lui faire suffisamment confiance, vous pouvez créer un pot (ou un clone) de n'importe quel dépôt et l'utiliser.
amalBit

111

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.jarfichier au chemin de classe.

Pour importer la bibliothèque à l'aide de gradle, vous pouvez avoir à l'ajouter à la dependenciessection 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).


1
Hmm, il indique toujours android-apt-compiler: styles.xml: 5: erreur: Erreur lors de la récupération du parent pour l'élément: Aucune ressource trouvée correspondant au nom donné 'Theme.Sherlock.Light.DarkActionBar'.
Alexander Kulyakhtin

Sous le module Sherlock -> Dependecies, j'ai Android 4.2.2 et la bibliothèque de support v4
Blackbelt

@ ρяσѕρєяK à côté du bouton Exécuter, il y a une étiquette avec Android. Si vous cliquez ici, vous trouverez Modifier la configuration. Poussez et sous le périphérique cible, cliquez sur "Show Chooser Dialg"
Blackbelt

7
Salut, j'ai le même problème comme Alex ("Gradle: Erreur lors de la récupération du parent pour l'élément: Aucune ressource trouvée qui correspond au nom donné 'Theme.Sherlock.Light'.") - la dépendance Java semble être résolue correctement, provoque la IDE ne blâme pas mon SherlockActivity, mais pour une raison quelconque, Gradle ne semble pas s'intéresser aux ressources de l'ABS. Des idées?
pêcher

4
Sur Android Studio 0.2.8, il n'y a pas de Modulessection dans la Project Structurefenêtre.
Konrad Morawski

52

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.


Très utile et, surtout, ne joue pas avec les caprices de la journée.
RichieHH

1
merci beaucoup d'avoir inclus la seule réponse qui a du sens. toutes les autres réponses sont obsolètes et ne fonctionnent tout simplement pas. je n'ai même pas essayé en CS à Virginia Tech parce que les deux premières années ont été d'apprendre à cliquer sur eccipse. cela n'avait aucun sens fckn, mais voir le résultat gradle des clics aléatoires dans un IDE le fait.
dcunited001

Merci pour l'astuce des sous-modules git. J'utilisais auparavant la jonction, mais je suis maintenant passé aux externes SVN. Fonctionne comme un charme.
velis

25

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.

  1. Fichier de menu -> Nouveau module ... :

    Importer un projet existant

    Cliquez sur "Importer un projet existant".

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

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


17

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

  1. Dans settings.gradle, ajoutez

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


Salut Vilen ce qui est settingsDir ici
Rajnish Mishra

Salut Rajnish. De la documentation: settingsDir Renvoie le répertoire des paramètres de la build. Le répertoire des paramètres est le répertoire contenant le fichier de paramètres. Renvoie: le répertoire des paramètres. Ne renvoie jamais null.
Vilen

Les deux points avant / dépendances sont plus importants à prendre en charge Votre réponse m'aide beaucoup. Merci
Rajnish Mishra

REMARQUE: pour l'évaluation des chaînes dans Gradle, vous devez utiliser des guillemets doubles ("). Cela" sauve la journée "pour moi. Lié à cela
Solata

15

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:

Entrez la description de l'image ici

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.


12

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

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

Option 2: modifier manuellement le fichier build.gradle

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

Option 3: utiliser l'interface utilisateur d'Android Studio

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.

Entrez la description de l'image ici

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

  • Dépendance de la bibliothèque
  • Dépendance des fichiers
  • 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 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.

La source


10

Voici comment cela fonctionne pour moi dans Android Studio 1.5+

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

9

Si vous avez besoin d'accéder aux ressources d'un projet de bibliothèque (comme vous le faites avec ABS), assurez-vous d'ajouter le projet / module de bibliothèque en tant que "Module Dependency" au lieu d'une "Library".


9

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

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.


1
À mon avis, le moyen le plus simple et le plus rapide, fonctionnait encore aujourd'hui!
mrj

8
  1. Appuyez sur F4pour afficher la structure du projet , cliquez sur bibliothèques ou bibliothèques globales, puis cliquez sur +pour ajouter le fichier JAR.
  2. Cliquez sur Modules ce que vous voulez ajouter un pot, sélectionnez l' onglet Dépendances , cliquez sur +et ajoutez Bibliothèque.

6

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/

  • 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, et cela se fait en déclarant les dépendances suivantes:

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

Vraiment? Étrange, ils ont l'intégralité de l'interface graphique et pourtant ce n'est pas conseillé. Comment?
Alexander Kulyakhtin

Comme l'édition via l'interface graphique n'écrit pas ces modifications dans votre fichier build.gradle. L'édition GUI enregistre uniquement les modifications dans les propres données de projet d'IntelliJ. C'est un bug pour le moment qui sera corrigé dans les prochaines versions. Vous pouvez vous référer à cette réponse du chef d'équipe Google Android-Studio stackoverflow.com/questions/16678447/…
Shakti Malik

5

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


5

Première voie 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 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 ... :

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 mon chemin MacBook:

Entrez la description de l'image ici

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


4

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.


J'ai essayé toutes les étapes en ajoutant le module en tant que dépendance, mais je l'ai toujours fait 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
christiaanderidder

Je migre vers IDEA 13 à partir de 12 et j'ai également cette erreur. Seule la réimportation pour toutes mes dépendances sera utile. Supprimez manuellement tous les modules, supprimez les fichiers * .iml associés et réimportez vos bibliothèques
Dmitriy Tarasov

4

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 devriez utiliser implementationplutôt que compilemaintenant. C'est nouveau avec Android Studio 3.0. Voir ce Q & A pour une explication de la différence.


Il s'agit en fait d'un changement dans Gradle 4, pas dans Android Studio 3. Vous pouvez continuer à utiliser com.android.tools.build:gradle:2.3.3au lieu de 3.0.0 dans Android Studio 3 si vous souhaitez continuer à utiliser "compiler".
chauduyphanvu

3

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.


3

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.


3

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. Faites un clic droit sur le module et sélectionnez ouvrir les paramètres du module
  2. Sélectionnez les dépendances, cliquez sur +, sélectionnez les dépendances de bibliothèque et ajoutez le module précédemment importé.


2

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

Entrez la description de l'image ici


2

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:

entrez la description de l'image ici

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:

entrez la description de l'image ici

J'espère que ça aide.


2

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.


2

J'avais une cause différente du problème donc pour les gens:

repositories {
    mavenCentral()
}

changez mavenCentral () en jcenter () et ajoutez

allprojects {
    repositories {
        jcenter()
    }
}

1

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.


1

Pour Android Studio:

Entrez la description de l'image ici

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:

Entrez la description de l'image ici

Enfin, compilez les fichiers Gradle:

Entrez la description de l'image ici


0

J'ai également rencontré le même problème, puis j'ai suivi les choses.

  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. Ensuite, je suis allé à mon module principal dans lequel je veux que le projet de bibliothèque soit un projet dépendant

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


0

Ajoutez ceci dans votre fichier gradle de build:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}

-1

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 .

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

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

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

  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 dialogue et sélectionnez la dépendance de fichier.

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


1
faire des copies de pots dans des actifs n'est pas une bonne idée, cela augmentera inutilement la taille de l'
apk

Merci pour le conseil @RajnishMishra. Je m'en doutais, mais que proposez-vous à la place?
monn3t
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.