J'essaye d'ajouter une dépendance d'Android Asynchronous Http Client dans mon projet. Il y a donc deux fichiers build.gradle dans le projet.
Selon ce que je comprends, il existe différents types de dépendances:
- Celui qui a défini au niveau racine de build.gradle (Projet: My-app)
- Un dans le buildscript de build.gradle (Projet: My-app)
- Un autre est build.gradle (Modules: app)
Cette question concerne les référentiels pour les dépendances du buildScript, expliquez un peu les deux premiers types.
Build.gradle (Project: My-app) dit également
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Je suppose donc que le code de dépendance d'Android Asynchronous Http Client devrait être ajouté dans build.gradle (Module: app).
Si quelqu'un pouvait donner une image claire de tout cela pour une meilleure compréhension, ce serait formidable.
android
android-studio
build.gradle
Anil Bhaskar
la source
la source
build.gradle(Modules:app)
ou aller à l'File -> Project Structure -> Modules -> (Choose project you want to add library) -> Dependencies
endroit où vous verrez une croix verte, en appuyant sur cetteModule Dependency
option et ajoutez votre bibliothèque automatiquementFailed to find: com.loopj.android:android-async-http:1.4.5
expliquant pourquoi il ne peut pas télécharger directement, j'ai également défini le proxy. J'ai téléchargé le fichier jar et essayé manuellement, mais commeFile Repository
... est-ce la bonne manière.Project Structure
accédez àModules
et choisissez votre projet. Là, vous verrez un fichiergreen cross sign
. Cliquez dessus pour ouvrir laNew Module
fenêtre. Là, vous choisissez d'importer votre bibliothèque.Si vous avez un.jar
fichier, choisissez ci-dessousimport .JAR or .AAR package
. Sinon copiez votre jar dans lelibs
dossier etModule:app
ajoutez ces dépendances:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/your_jar_file.jar') }
Réponses:
build.gradle(Project:My-app)
Chaque projet contient un fichier
top-level gradle file
. Il contient généralementcommon configs
pour tousmodules
. Quoi qu'il en soittop-level gradle
, cela affectera tout le mondemodules
.ex:
build.gradle(Module:app)
Tous
modules
ont ungradle
fichier spécifique . Tout ce qui est inclus dans cegradle
fichier, cela n'affecteramodule
que le qui est inclus sur.ex:
la source
C'est un peu déroutant car Android Studio affiche par défaut les deux
build.gradle
fichiers l'un à côté de l'autre (lors de l'utilisation de la vue Android).Si vous passez à la vue Projet, vous pouvez voir la structure réelle et l'emplacement des différents
build.gradle
fichiers.Le
build.gradle
fichier (Project: MyApplication) se trouve dans le dossier racine du projet et ses paramètres de configuration s'appliquent à chaque module du projet. Un module est un élément isolé du plus grand projet. Dans un projet multi-modules, ces modules ont leurs propres tâches mais fonctionnent ensemble pour former l'ensemble du projet. La plupart des projets Android n'ont qu'un seul module, le module d'application.Le
build.gradle
fichier (Module: app) se trouve ici dans leapp
dossier. Ses paramètres de construction s'appliquent uniquement au module d'application. S'il y avait un autre module, ce module aurait aussi son proprebuild.gradle
fichier. À titre d' exemple , j'ai créé un projet de bibliothèque avec trois modules: un module de bibliothèque, un module d'application de démonstration et un autre module d'application que je prévois d'utiliser pour les tests. Chacun d'eux a ses propresbuild.gradle
fichiers que je peux modifier.Dans un projet de base, presque tout ce que vous devez modifier sera dans le
build.gradle
fichier du module d'application . Vous pouvez vous en souvenir comme ceci:Lectures complémentaires
la source
À propos de la relation des deux
gradle
fichiers, hrskrs a donné une explication très claire , Je vais faire un supplément à ce sujet.si votre projet n'a qu'un seul module (comme app ), l'avantage de top build.gradle (Project: My-app) n'est pas très clair. car vous pouvez tout configurer dans build.gradle (Module: app) sur le module, et ne modifier qu'un seul fichier lors de la mise à niveau dans les jours suivants。
mais si votre projet a 5 modules, et qu'il se trouve qu'ils ont la même dépendance A , si vous n'utilisez pas le top build.gradle (Project: My-app), vous devez maintenir 5 fichiers les jours suivants.
en passant, le build.gradle (Module: app) peut écraser le build.gradle (Project: My-app) .
Cette conception peut améliorer la maintenabilité de l'APP
la source