type tools studio flavor ext debug android build gradle source-sets

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.