Recursos de la cadena de combinación de Gradle de Android

Me gustaría crear 2 APK diferentes (liberación y depuración) usando Gradle y quiero usar nombres diferentes para ellos ('appName' y 'appName depuración').

He encontrado algunas soluciones pero no funciona para mí:
Enlace 1
Enlace 2

Quisiera instalar ambos apks en el dispositivo pero tengo el siguiente error:

Duplicate resources: ...\src\release\res\values\config.xml:string/config_app_name, ...\src\main\res\values\config.xml:string/config_app_name 

Si config_app_name clave config_app_name de la main\res\values\config.xml entonces Gradle dice que la clave no se encontró.

Tengo 3 archivos de manifiesto:

 ...\src\main\AndroidManifest.xml (this uses the `android:label="@string/config_app_name"`) ...\src\release\AndroidManifest.xml ...\src\debug\AndroidManifest.xml buildTypes { debug { packageNameSuffix ".debug" versionNameSuffix "-debug" buildConfig "public static final String PROVIDER_AUTHORITY = \"" + PROVIDER_DEBUG + "\";" signingConfig signingConfigs.debug } release { buildConfig "public static final String PROVIDER_AUTHORITY = \"" + PROVIDER_RELEASE + "\";" signingConfig signingConfigs.release } } sourceSets { debug { java.srcDirs = [ 'src/main/java'] res.srcDirs = [ 'src/main/res', 'src/debug/res'] } release { java.srcDirs = [ 'src/main/java'] res.srcDirs = [ 'src/main/res', 'src/release/res'] } } 

¿Es posible usar una clave común (strings, integers, dimens) en la parte principal del proyecto y anularla en la parte de release / debug?

Gracias por adelantado.

Acabo de darme cuenta de que era sólo una cuestión de nombres. El nombre del paquete de lanzamiento estaba mal escrito. Perdón por este estúpido problema.

Ahora la combinación funciona como se esperaba.

Mire aquí: http://tools.android.com/tech-docs/new-build-system/resource-merging

Se han definido varias fuentes de recursos para el tipo de compilación. En tal caso tienen la misma prioridad y pueden causar conflictos.

Si desea una fusión correcta, debe crear un conjunto de fuentes principal independiente. Tendrá menos prioridad que los recursos de tipos de construcción.

 sourceSets { main { java.srcDirs = ['src/main/java'] res.srcDirs = ['src/debug/res'] } debug { res.srcDirs = ['src/debug/res'] } release { res.srcDirs = ['src/release/res'] } } 

Pero con tal estructura de directorio debe trabajar fuera de la caja sin la definición de los fuentes.

  • ¿Hay una manera de cargar el apk firmado a crashlytics?
  • Android Studio Build / Limpieza
  • Diferentes dependencias de sabor
  • Findbugs android gradle plugin
  • ¿Qué significa realmente "Proyecto de sincronización con archivo Gradle"?
  • No se puede normalizar la ruta en bintrayUpload
  • Android Studio - No se puede construir el proyecto - GradleConnectionException
  • Android APK construido desde el estudio de Android y la consola tienen diferentes huellas digitales SHA
  • Gradlew build freezing en mergeDebugResources
  • Cómo adjuntar javadoc al archivo .aar personalizado en android studio?
  • Android- Error: Error de ejecución para la tarea ': app: transformClassesWithDexForRelease'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.