android gradle android-gradle-plugin android-build

Android Gradle Build: la ejecución de assembleDebug hace que las tareas de lanzamiento de las dependencias del proyecto se llamen



android-gradle-plugin android-build (1)

Al ejecutar assembleDebug, se llaman las tareas relacionadas con la versión de los proyectos de los que dependo.

Por ejemplo, tengo un proyecto llamado ''x'' que depende de ''y''.

Cuando gradle assembleDebug llama y: mergeReleaseProguardFiles, packageReleaseAidl, etc ... etc.


Edición: Ya no es cierto, con Android Gradle Plugin 3.x.

Las bibliotecas también publican artefactos de debug y release . Si el proyecto tiene sabores o tipos personalizados, también se crean. Y a través de los módulos, trata de hacer coincidir las variantes automáticamente. Si no coincide, debe proporcionar matchingFallback para que coincida con las variantes en todos los módulos. Puede encontrar más información aquí: https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors

Los módulos de biblioteca de Android solo publican el tipo de compilación "release" No tienen el tipo de compilación "depuración". Incluso su módulo de aplicación compila la versión de depuración, utilizará la versión de lanzamiento de la biblioteca.

Puede habilitar el tipo de compilación "depuración" de la dependencia de la biblioteca usando lo siguiente en el archivo build.gradle su módulo:

android { publishNonDefault true ... }

Luego, cuando esté usando esa dependencia en el otro módulo, debería usar así:

dependencies { releaseCompile project(path: '':moduleY'', configuration: ''release'') debugCompile project(path: '':moduleY'', configuration: ''debug'') }

Estoy usando el mismo truco en mi aplicación. Tengo un módulo compartido y uso la versión de depuración del módulo. Encuentra detalles aquí:

https://github.com/pomopomo/WearPomodoro/blob/develop/mobile/build.gradle#L90