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




library build (25)

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

Cette question SO

Ce post

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

(Pas à l'ancien bundle ADT Eclipse, mais au nouveau Android Studio .)


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:


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

Voilà comment cela fonctionne pour moi dans Android Studio 1.5

Dans le projet où vous voulez ajouter un projet de bibliothèque externe, allez dans le menu Fichier -> Nouveau -> * Importer nouveau module **, naviguez jusqu'au projet de bibliothèque que vous voulez 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 dépendances:

Compiler le projet (': library')

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

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 importez actionbarsherlock . Puis synchronisez 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 yy.yy

il suffit d'ouvrir le fichier build.gradle dans le répertoire actionbarsherlock et de mettre à jour le buildToolsVersion à 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:

Puis sélectionnez le module importé :


Utilisez le menu Fichier -> Structure du projet -> Modules .

J'ai commencé à l'utiliser aujourd'hui. C'est un peu différent.

Pour Sherlock, peut-être que vous voulez supprimer leur répertoire de test, ou ajouter le fichier junit.jar au classpath.

Pour importer la bibliothèque en utilisant gradle, vous pouvez l'ajouter à la section dependencies 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:[email protected]'
}

Android Studio est en train de changer.

Il existe une section nommée "Ouvrir les paramètres du module" si vous faites un clic droit sur un dossier de module dans la section projet d'Android Studio (j'utilise la version 0.2.10).


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

Recherchez le répertoire qui contient 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 à jour celle-ci.


J'ai aussi rencontré le même problème que 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 en tant que projet dépendant

  3. Clic droit sur le module principal (dans mon cas son nom est app ) -> paramétrage du module ouvert -> allez dans l'onglet dépendances -> cliquez sur le bouton + (vous l'aurez sur le côté droit de la fenêtre) -> cliquez sur dépendance du module > 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 aussi les autres.


Après l'importation du module ABS (à partir de Fichier> Structure du projet) et en vérifiant qu'il a Android 2.2 et Support Library v4 comme dépendances, je recevais toujours l'erreur suivante comme 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 corrigé le problème.


Mise à jour pour Android Studio 1.0

Depuis qu'Android Studio 1.0 a été publié (et beaucoup de versions entre la v1.0 et l'une des premières à partir de ma réponse précédente), certaines choses ont changé.

Ma description est centrée sur l'ajout de projet de bibliothèque externe à la main via les fichiers Gradle (pour une meilleure compréhension du processus). Si vous souhaitez ajouter une bibliothèque via le créateur d'Android Studio, consultez la réponse ci-dessous avec un guide visuel (il existe des différences entre Android Studio 1.0 et les captures d'écran, mais le processus est très similaire).

Avant de commencer à ajouter une bibliothèque à votre projet, pensez à ajouter la dépendance externe. Il ne gâchera pas dans la structure de votre projet. Presque toutes les librairies Android connues sont disponibles dans un dépôt Maven et son installation ne prend qu'une seule ligne de code dans le fichier app/build.gradle :

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

Ajouter la bibliothèque

Voici le processus complet d'ajout de la bibliothèque Android externe à notre projet:

  1. Créez un nouveau projet via le créateur Android Studio. Je l'ai appelé 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 nécessaire - uniquement pour conserver une structure de projet plus propre).
  2. Collez votre bibliothèque dans le nouveau dossier /libs . 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. Modifier 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 faites face à une 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 SDK et la version des outils de construction pour chaque module afin de conserver la cohérence. Il suffit d'éditer 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
    

    Maintenant, vous pouvez l'utiliser dans vos fichiers build.gradle (dans l'application et les modules 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. Il suffit de cliquer, synchroniser le projet avec l'icône Gradle ' . Votre bibliothèque devrait être disponible dans votre projet.

Google I / O 2013 - Le nouveau système de construction Android SDK est une excellente présentation sur la construction d'applications Android avec Gradle Build System: Comme Xavier Ducrohet a déclaré:

Android Studio traite de l'édition, du débogage et du 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 qui n'ont jamais vu la fourmi - comme moi;)), mais à la fin, Gradle nous offre de grandes opportunités et cela vaut la peine d'apprendre ce système de construction.


Si vous avez Android Studio .0.4.0, vous pouvez créer un nouveau dossier dans votre chemin de YourApp/libraries , YourApp/libraries . Copiez le fichier JAR. Là, faites un clic droit dessus et "Ajouter comme bibliothèque". Maintenant, vous avez un popup. Sélectionnez simplement votre répertoire et appuyez sur OK, et c'est tout.


Fondamentalement, vous pouvez inclure vos fichiers JAR de trois façons différentes. Le dernier est une bibliothèque distante qui utilise https://bintray.com/ jcenter online repository. Mais, si vous le faites de l'une des deux autres manières, le fichier JAR sera physiquement inclus dans votre projet. Veuillez lire ce lien https://.com/a/35369267/5475941 pour plus d'informations. Dans ce post, j'ai expliqué comment importer votre fichier JAR dans un studio Android 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 (bintray.com jcenter part) et elles seront utilisées à distance:

J'espère que ça aide.


First Way Cela fonctionne pour MacBook.

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

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

Sélectionnez le projet de synchronisation.

Si vous obtenez une erreur comme "Project with path ': signature-pad" ne peut pas être trouvé dans le projet': app '", alors utilisez la seconde méthode:

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

Après avoir cliqué sur Importer un module ,

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

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


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 l' implementation plutôt que de la compile maintenant. C'est nouveau avec Android Studio 3.0. Voir cette Q & A pour une explication de la différence.


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

a) Copiez vos fichiers * .jar

b) Coller 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 les bibliothèques com.example.ScanAPI a le même espace de noms com.example , Android Studio vérifie votre build et crée toutes les modifications nécessaires dans votre projet. Après cela, vous pouvez consulter 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 droit sur la bibliothèque et sélectionner l'option "Ajouter comme bibliothèque" et sélectionner le type dont vous avez besoin.

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



La façon la plus simple d'inclure un projet de bibliothèque externe est (par exemple, d'inclure une bibliothèque Facebook qui est stockée dans un répertoire du dossier de dépendances):

  1. Dans settings.gradle ajouter

    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 qu'il reste à faire est de synchroniser le projet avec les fichiers Gradle.


J'ai trouvé la solution. C'est si simple. Suivez les share .

Assurez-vous de créer un dossier Source dans le dossier src dans Structure de projet -> Modules (sources).


Ouvrez le fichier de l'application du module build gradle et ajoutez votre dépendance. Si vous téléchargez la bibliothèque, il vous suffit d'importer et de créer en tant que gradle.

Sinon, ajoutez des dépôts dans l'application du module secondaire:

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:[email protected]') {
        transitive = true
    }

Si vous créez une bibliothèque, il vous suffit d'importer le projet en tant que nouveau module d'importation.


J'envisagerais les dépendances, les bibliothèques Android et la configuration nécessaire à la configuration de plusieurs 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 Gradle en utilisant une configuration multi-projets. Une installation 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 est construit. De plus, il y aura un fichier nommé 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 réellement un projet Gradle.

Le projet: app est susceptible de dépendre des bibliothèques, et cela en déclarant les dépendances suivantes:

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

Veuillez noter qu'il n'y a eu que peu ou pas d'utilisation d'Android Studio GUI pour que cela se produise.

J'utilise actuellement des sous-modules git pour lier la bibliothèque imbriquée à la bibliothèque réelle git repo pour éviter un désordre de dépendance.


Pour résoudre ce problème, il vous suffit d'ajouter le chemin de la ressource 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.


La modification des dépendances de bibliothèque via l'interface graphique n'est pas conseillé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 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. : application
  2. : bibliothèques: lib1
  3. : bibliothèques: lib2

Le projet: app est susceptible de dépendre des bibliothèques, et cela en déclarant les dépendances suivantes:

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

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 "dépendance de module" au lieu d'une "bibliothèque".


Il suffit d'importer 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 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é.

Sur Android, les opérations réseau ne peuvent pas être exécutées sur le thread principal. Vous pouvez utiliser Thread, AsyncTask (tâches à exécution courte), Service (tâches à exécution longue) pour effectuer des opérations réseau.





android actionbarsherlock android-library android-studio