Construir fallas con 'task :features:catalog:createDebugCompatibleScreenManifests FAILED' mientras se refactoriza a módulos de características dinámicas en android
Una vez que introduje módulos de funciones dinámicas en mi aplicación, pude refactorizar exitosamente uno (ordenes), construir y desplegar. Pero al refactorizar el segundo módulo, es decir, mover archivos y recursos a ese módulo, obtengo este error en la construcción:
Execution failed for task ':features:catalog:createDebugCompatibleScreenManifests'.
> Failed to calculate the value of task ':features:catalog:createDebugCompatibleScreenManifests' property 'applicationId'.
> Failed to query the value of property 'testedApplicationId'.
> Collection has more than one element.
He probado las siguientes correcciones:
- invalidate cache
- reclone project
- asegurar que todos los archivos de gris son idénticos (excepto
applicationId
bit) - comprobó que no hay errores en los archivos manifiesto
- confirmó que no hay dos módulos que compartan el mismo ID de aplicación.
- rebajar el proyecto al último compromiso de trabajo.
¿Algún apuntador de lo que está causando este problema de construcción?
Otras informaciones: Estoy usando la inyección de dependencia con koin.
Módulo App/Main manifest.xml
xml version="1.0" encoding="utf-8"?
Módulo App/Main build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'realm-android'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: (BuildPlugins.dependencyUpdateChecker)
android {
compileSdkVersion AndroidSDK.compileSDKVersion
buildToolsVersion Versions.buildTools
defaultConfig {
applicationId "com.example.app"
minSdkVersion AndroidSDK.minimumSDKVersion
targetSdkVersion AndroidSDK.targetSDKVersion
versionCode Versions.versionCode
versionName Versions.versionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
manifestPlaceholders = [crashlyticsCollectionEnabled: "false"]
applicationIdSuffix(".debug")
versionNameSuffix("-debug")
buildConfigField("String", "BASE_URL", debug_url)
}
staging {
initWith(release)
manifestPlaceholders = [crashlyticsCollectionEnabled: "false"]
applicationIdSuffix(".staging")
versionNameSuffix("-staging")
buildConfigField("String", "BASE_URL", staging_url)
}
release {
manifestPlaceholders = [crashlyticsCollectionEnabled: "true"]
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField("String", "BASE_URL", production_url)
}
}
buildFeatures {
viewBinding = true
dataBinding = true
}
kotlinOptions {
jvmTarget = '1.8'
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
kapt {
correctErrorTypes = true
}
dynamicFeatures = [':features:kiosks', ':features:catalog', ':features:checkout', ':features:summary', ':features:orders']
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation Libraries.kotlinStandardLibrary
implementation Libraries.appCompat
implementation Libraries.constraintLayout
api Libraries.materialComponents
implementation Libraries.navigationFragment
implementation Libraries.navigationUI
implementation Libraries.preferences
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
//firebase libs
implementation Libraries.firebaseMessaging
implementation Libraries.firebaseConfig
// Recommended: Add the Firebase SDK for Google Analytics.
implementation Libraries.firebaseAnalytics
implementation Libraries.firebaseCrashlytics
// DI
api Libraries.koinAndroid
api Libraries.koinLifecycle
api Libraries.koinViewmodel
//maps
implementation 'com.google.android.gms:play-services-maps:17.0.0'
//own modules
implementation project(path: ':location-services')
implementation project(path: ':network')
api project(path: ':helpers')
//glide
implementation 'com.github.bumptech.glide:glide:4.11.0'
kapt 'com.github.bumptech.glide:compiler:4.11.0'
//loading button
api Libraries.buttonProgress
//pagination lib
implementation Libraries.jdroidCoder
//EventBus
api Libraries.eventBus
//logging
api Libraries.timber
//anko
api Libraries.ankoDesign
api Libraries.ankoCommons
//play core library
implementation(Libraries.playCore)
implementation(Libraries.playCorektx)
// paris for applying styles to views dynamically
implementation 'com.airbnb.android:paris:1.7.2'
// lottie for animations
implementation 'com.airbnb.android:lottie:3.5.0'
// Okhttp Profiler
implementation Libraries.loggingInterceptor
// Test libs
testImplementation(TestLibraries.junit4)
androidTestImplementation(TestLibraries.androidX)
androidTestImplementation(TestLibraries.espresso)
androidTestImplementation(TestLibraries.annotationLib)
}
Módulo de alimentación 1(ordenes) manifest.xml
xml version="1.0" encoding="utf-8"?
Gráfico 1 (ordenes) build.gradle
apply plugin: 'com.android.dynamic-feature'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: (BuildPlugins.dependencyUpdateChecker)
android {
compileSdkVersion AndroidSDK.compileSDKVersion
buildToolsVersion Versions.buildTools
defaultConfig {
applicationId "com.example.app.orders"
minSdkVersion AndroidSDK.minimumSDKVersion
targetSdkVersion AndroidSDK.targetSDKVersion
versionCode Versions.versionCode
versionName Versions.versionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {}
staging {}
release {}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
viewBinding = true
dataBinding = true
}
}
dependencies {
implementation project(":app")
implementation project(path: ':network')
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation Libraries.kotlinStandardLibrary
implementation Libraries.ktxCore
implementation Libraries.appCompat
implementation Libraries.constraintLayout
implementation Libraries.materialComponents
implementation Libraries.navigationFragment
implementation Libraries.navigationUI
implementation Libraries.buttonProgress
implementation Libraries.ankoDesign
implementation Libraries.ankoCommons
implementation(Libraries.coroutinesAndroid)
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
// Test libs
testImplementation(TestLibraries.junit4)
androidTestImplementation(TestLibraries.androidX)
androidTestImplementation(TestLibraries.espresso)
androidTestImplementation(TestLibraries.annotationLib)
}
Pregunta hecha hace 3 años, 4 meses, 29 días - Por nasean
5 Respuestas:
-
La cuestión terminó siendo una biblioteca que había importado.
La biblioteca tenía plugin
apply plugin: 'com.android.application'
en lugar deapply plugin: 'com.android.library'
Como tal, la tarea de la construcción de cuna estaba buscando
applicationId
yapplicationName
en el manifiesto, que no estaba allí.Oops, error de desarrollador.
Respondida el Dec 18, 2020 a las 09:07 - por techtrailblazer
Votos positivos: 0 | Votos negativos: 0 -
Para mí sucedió cuando se agregó un nuevo módulo de características dinámicas con múltiples sabores.
Lo resolví cambiando dentro módulo. gris:
implementation project(path: ':app', configuration: 'default')
en
implementation project(":app")
Luego añadir sabores en módulo. gris
flavorDimensions "app" productFlavors { flavor1 {} flavor2 {} flavor3 {} }
Aquí está mi final módulo. gris
apply plugin: 'com.android.dynamic-feature' android { compileSdkVersion 29 buildToolsVersion '29.0.3' defaultConfig { minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } flavorDimensions "app" productFlavors { flavor1 {} flavor2 {} flavor3 {} } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation project(":app") }
Respondida el Dec 18, 2020 a las 09:16 - por markupmaestro
Votos positivos: 0 | Votos negativos: 0 -
Desinstalar la aplicación del emulador y luego reiniciarla
Respondida el Dec 18, 2020 a las 09:22 - por pixelprodigy
Votos positivos: 0 | Votos negativos: 0 -
El error que estás experimentando parece estar relacionado con la configuración de los módulos dinámicos en tu proyecto de Android. En particular, el error se menciona al calcular el valor de la propiedad 'applicationId' para la tarea ':features:catalog:createDebugCompatibleScreenManifests'. Esto puede indicar un problema con la configuración de la aplicación principal y cómo se relaciona con los módulos dinámicos.
Aquí tienes algunas sugerencias para abordar este problema:
- Verificar la configuración de los módulos dinámicos: Asegúrate de que la configuración de los módulos dinámicos, en este caso, el módulo 'catalog', esté correctamente establecida. Revisa el archivo `build.gradle` del módulo 'catalog' y asegúrate de que la aplicaciónId esté configurada de manera consistente con los otros módulos.
- Revisar las dependencias entre módulos: Verifica las dependencias entre los distintos módulos de tu proyecto. Asegúrate de que los módulos estén correctamente referenciados en el archivo
settings.gradle
y en los archivosbuild.gradle
Respondida el Dec 19, 2020 a las 09:10 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Causa Probable:
La causa del error es la configuración incorrecta del
applicationId
en el módulo del catálogo. Cuando se refactoriza una aplicación a módulos de características dinámicas, cada módulo debe tener su propioapplicationId
único. Sin embargo, parece que el módulo del catálogo todavía utiliza el mismoapplicationId
que la aplicación principal.Solución:
- Verifica el archivo de manifiesto del módulo del catálogo:
- Asegúrate de que el atributo `package` se establece en un identificador de paquete único que no coincida con el `applicationId` de la aplicación principal.
- Elimina la etiqueta
dist:module
:
dist:module
en su archivomanifest.xml
, elimínala. Esta etiqueta solo es necesaria para las aplicaciones instantáneas, que no se utilizan en este caso.- Limpia y vuelve a compilar:
package
y eliminado la etiquetadist:module
(si procede), limpia y vuelve a compilar el proyecto. Esto debería resolver el error.Ejemplo:
Módulo del catálogo manifest.xml
xml
Después de realizar estos cambios, vuelve a compilar el proyecto. El error debería desaparecer y deberías poder crear con éxito el módulo del catálogo.
Respondida el Dec 19, 2020 a las 09:15 - por Gemini
Votos positivos: 0 | Votos negativos: 0