Sabor del producto: Clase duplicada encontrada

Tengo una pregunta muy estúpida, pero estoy sentado aquí frente a mi aplicación desde horas, pero no puedo entender cuál es el problema.

Tengo una aplicación para Android (escrita en kotlin) y quiero hacer dos sabores de producto y anular una clase / archivo en el sabor del producto:

Así que mi gradle script es que:

apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { ... productFlavors { foo { applicationId "com.foo" } } } 

Mis archivos están estructurados de la siguiente manera:

  - src - androidTest - foo - java - com - example - Bar.kt - main - java - com - example - Bar.kt - test 

Así que básicamente me gustaría anular el archivo Bar.kt en el sabor del producto foo , pero de alguna manera no funciona: Dice que la barra de clases está duplicada.

¿Alguna pista?

La documentación para variantes estados (énfasis mío):

Nota: Para una variante de construcción dada, Gradle lanza un error de compilación si encuentra dos o más directorios de conjuntos de fuentes que han definido la misma clase Java. Por ejemplo, al crear un APK de depuración, no puede definir src / debug / Utility.java y src / main / Utility.java. Esto se debe a que Gradle examina estos dos directorios durante el proceso de compilación y genera un error de "clase duplicada" . Si desea diferentes versiones de Utility.java para diferentes tipos de compilación, puede tener cada tipo de compilación para definir su propia versión del archivo y no incluirla en el conjunto main / source .

Así que la solución es tener su propia versión de Bar.kt por variante y excluirla del conjunto de fuentes principales.

  • Advertencia de tiempo de ejecución de Kotlin desactualizada (plugin Kotlin 1.1.2-release-Studio2.3-3)
  • Reglas de ProGuard para la reflexión de Kotlin
  • Constructores en Kotlin
  • Diseño sintético y personalizado de Kotlin en DialogFragment
  • ¿Cómo puedo ejecutar una única prueba de Android con Kotlin?
  • Kotlin, Proguard y lambdas
  • ¿Cómo acceder a "Activity.this" en Kotlin?
  • Kotlin y la nueva ActivityTestRule: La @Rule debe ser pública
  • Prueba de unidad en la función de extensión de Kotlin en las clases de SDK de Android
  • Android Room - consulta de selección simple - No se puede acceder a la base de datos en el hilo principal
  • Kotlin: @ propiedades ignoradas persistidas por Sugar ORM
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.