Estoy tratando de agregar una dependencia de Android Asynchronous Http Client en mi proyecto. Así que hay dos archivos build.gradle en el proyecto.
Según tengo entendido, existen diferentes tipos de dependencias:
- Uno que se definió en el nivel raíz de build.gradle (Proyecto: Mi-aplicación)
- Uno dentro del script de compilación de build.gradle (Proyecto: My-app)
- Otro es build.gradle (Módulos: aplicación)
Esta pregunta trata sobre los repositorios para las dependencias del buildScript, explique un poco sobre los dos primeros tipos.
También build.gradle (Proyecto: Mi-aplicación) dice
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Así que supongo que el código de dependencia de Android Asynchronous Http Client debería agregarse en build.gradle (Módulo: aplicación).
Si alguien pudiera dar una imagen clara de todos estos para una mejor comprensión, sería genial.
android
android-studio
build.gradle
Anil Bhaskar
fuente
fuente
build.gradle(Modules:app)
o ir aFile -> Project Structure -> Modules -> (Choose project you want to add library) -> Dependencies
donde verá un letrero de cruz verde, tocando esa opciónModule Dependency
y agregue su biblioteca automáticamenteFailed to find: com.loopj.android:android-async-http:1.4.5
por qué no se puede descargar directamente, también configuré el proxy. Descargué el archivo jar y lo intenté manualmente, pero comoFile Repository
... es la forma correcta.Project Structure
vaya aModules
y elija su proyecto. Allí verá ungreen cross sign
. Al hacer clic en eso se abrirá laNew Module
ventana. Allí elige importar su biblioteca. Si tiene un.jar
archivo, elija a continuaciónimport .JAR or .AAR package
. De lo contrario, copie su jar a lalibs
carpeta yModule:app
agregue estas dependencias:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/your_jar_file.jar') }
Respuestas:
build.gradle(Project:My-app)
Cada proyecto contiene un
top-level gradle file
. Generalmente contienecommon configs
para todosmodules
. Todo lo que esté incluido en estotop-level gradle
, afectará a todosmodules
.ex:
build.gradle(Module:app)
Todos
modules
tienen ungradle
archivo específico . Todo lo que esté incluido en estegradle
archivo, solo afectará almodule
que está incluido.ex:
fuente
Es un poco confuso porque Android Studio de forma predeterminada muestra ambos
build.gradle
archivos uno al lado del otro (cuando se usa la vista de Android).Si cambia a la vista Proyecto, puede ver la estructura real y dónde se encuentran los diferentes
build.gradle
archivos.los
build.gradle
archivo (Proyecto: MyApplication) está en la carpeta raíz del proyecto y sus ajustes de configuración se aplican a todos los módulos del proyecto. Un módulo es una pieza aislada del proyecto más grande. En un proyecto de varios módulos, estos módulos tienen sus propios trabajos pero trabajan juntos para formar el proyecto completo. La mayoría de los proyectos de Android solo tienen un módulo, el módulo de la aplicación.El
build.gradle
archivo (Módulo: aplicación) aquí está en laapp
carpeta. Su configuración de compilación se aplica solo al módulo de la aplicación. Si hubiera otro módulo, ese módulo también tendría su propiobuild.gradle
archivo. Como ejemplo , hice un proyecto de biblioteca con tres módulos: un módulo de biblioteca, un módulo de aplicación de demostración y otro módulo de aplicación que planeo usar para probar. Cada uno tiene sus propiosbuild.gradle
archivos que puedo modificar.En un proyecto básico, casi todo lo que necesita editar estará en el
build.gradle
archivo del módulo de la aplicación . Puedes recordarlo así:Otras lecturas
fuente
Sobre la relación de los dos
gradle
archivos, hrskrs hizo una explicación muy clara, haré algún suplemento al respecto.Si su proyecto solo tiene un Módulo (como una aplicación ), la ventaja de top build.gradle (Proyecto: My-app) no se muestra muy clara. porque puede configurar todo en build.gradle (Módulo: aplicación) sobre el Módulo, y solo modificar un archivo cuando actualice en los días siguientes。
pero si su proyecto tiene 5 módulos, y sucedió que tienen la misma dependencia A , si no usa el build.gradle superior (Proyecto: Mi-aplicación) , necesita mantener 5 archivos en los días siguientes.
por cierto, build.gradle (Módulo: aplicación) puede sobrescribir el build.gradle (Proyecto: My-app) .
Este diseño puede mejorar la mantenibilidad de la APLICACIÓN
fuente