tools - dependencies android studio
Android gradle buildTypes: clase duplicada (2)
La respuesta de "corregir" me ayudó en el camino, pero recibí un error del Gradle principal, diciendo que faltaba una constante (en mi clase Config). Esto desde que tuve mi clase solo en versión paga y gratuita y no en main. No se pudo encontrar la clase Config. No estoy seguro si esto es un error en Studio ... Finalmente lo resolví con lo siguiente:
buildTypes {
release {
...
buildConfig "public static final boolean XYZ = false;"
}
}
Y en lugar de usar mi constante de clase Config.XYZ utilicé buildConfig.XYZ
Estoy convirtiendo mi aplicación para usar gradle, y estoy tratando de usar BuildTypes. Tengo una clase de Constants
que deseo modificar para mi versión de lanzamiento. Así que tengo un archivo en src/main/java/my/package/name/Constants.java
y en src/release/java/my/package/name/Constants.java
.
Cuando trato de compilar esto, Gradle me dice que la compilación falló en el archivo Constants
en mi build buildtype, con el error de que es una clase duplicada.
También traté de agregar un conjunto de orígenes diferente para esto en mi build.gradle
así:
sourceSets {
main {
java.srcDirs = [''src/main/java''];
//...
}
release {
java.srcDirs = [''src/release/java''];
}
}
Pero esto todavía me da el mismo error. Entonces me pregunto, ¿qué estoy haciendo mal aquí?
No puedes tener una clase en main
y release
. Debes dividirlo en algo así como debug
y release
.
gradle fusionará los conjuntos fuente para cada buildType
con main
.
Esta es la razón por la cual el get de clase está duplicado en la release
.
Entonces la regla es: poner una clase en main
, o en cada buildType
pero no en ambos.