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) -> Dependenciesdonde verá un letrero de cruz verde, tocando esa opciónModule Dependencyy agregue su biblioteca automáticamenteFailed to find: com.loopj.android:android-async-http:1.4.5por 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 Structurevaya aModulesy elija su proyecto. Allí verá ungreen cross sign. Al hacer clic en eso se abrirá laNew Moduleventana. Allí elige importar su biblioteca. Si tiene un.jararchivo, elija a continuaciónimport .JAR or .AAR package. De lo contrario, copie su jar a lalibscarpeta yModule:appagregue 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 configspara todosmodules. Todo lo que esté incluido en estotop-level gradle, afectará a todosmodules.ex:
build.gradle(Module:app)Todos
modulestienen ungradlearchivo específico . Todo lo que esté incluido en estegradlearchivo, solo afectará almoduleque está incluido.ex:
fuente
Es un poco confuso porque Android Studio de forma predeterminada muestra ambos
build.gradlearchivos 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.gradlearchivos.los
build.gradlearchivo (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.gradlearchivo (Módulo: aplicación) aquí está en laappcarpeta. 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.gradlearchivo. 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.gradlearchivos que puedo modificar.En un proyecto básico, casi todo lo que necesita editar estará en el
build.gradlearchivo del módulo de la aplicación . Puedes recordarlo así:Otras lecturas
fuente
Sobre la relación de los dos
gradlearchivos, 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