productflavors - Problema de compatibilidad con Gradle y Android v7
build gradle defaultconfig (2)
Tengo problemas para compilar mi aplicación de Android con Gradle. Soy un novato con Gradle, entonces ...
Parece que Gradle no puede resolver correctamente la biblioteca de compatibilidad de v7. Este es el código donde lo uso:
MenuItemCompat.setOnActionExpandListener(mSearchItem,
new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) { ...}
Y este es el error que obtengo de Gradle:
C:/>gradlew build
error: cannot find symbol
new MenuItemCompat.OnActionExpandListener() {
^
symbol: class OnActionExpandListener
location: class MenuItemCompat
Puedo construir esto desde Android Studio sin problemas.
Intenté agregar manualmente el jar de la biblioteca compat a mi directorio lib y agregué una dependencia en el archivo gradle.build, pero no funcionó.
El problema es probablemente el repositorio de appcompat que falta en su SDK de Android.
Probablemente esté usando 2 instancias de gradle y Android SDK. Android Studio viene incluido con su propio SDK de Android, por lo que actualizar esto no cambiará su versión anterior instalada. También normalmente comenzarías un proyecto de Gradle en Android Studio con un Gradle-Wrapper que maneja la administración de la instancia de gradle por sí mismo (generalmente se descargará en tu carpeta% USER% /. Gradle)
También creo que descargó gradle y esa instancia es lo que usa a través de la línea de comandos. Así que, para solucionar esto, simplemente actualice su estudio android sdk de android studio (también verifique todos los repositorios)
Más sobre el tema: los proyectos de biblioteca de Android no se incluirán como un contenedor ya que necesitan recursos adicionales. El formato para esto es AAR, que a mi conocimiento no se puede construir directamente como por ahora. Además, el complemento gradle android no funciona con AAR locales, solo de repositorios maven / ivy (esta es una descripción de diseño ya propósito)
Finalmente, encontré el problema, gracias a for3st.
Bueno, no sabía que el Administrador de SDK de Android Studio y el Administrador de SDK que descargué yo solo de la página web de Android no se referían a lo siguiente. Ese es el problema principal aquí. Otros problemas estaban relacionados con el problema:
- Tenía una versión tan antigua de Android Studio (0.2) que tuve que actualizar manualmente con el instalador de zip que aplicaba el parche. Parecía funcionar bien, pero no estoy del todo seguro, así que lo desinstalé e instalé Android Studio 3.2 desde el sitio del desarrollador de Android, luego usé el mecanismo IDE para actualizar a 3.6. A partir de ahora, disfrutaré de actualizaciones más fáciles.
- Luego tuve muchos problemas con Gradle, relacionados con la versión y todo eso, así que descargué del sitio de Gradle la versión 1.8, coloqué en algún lugar de mi disco, edité las configuraciones de Android Studio para usar esto y edité el "gradle-wrapper.properties" "para usar la versión correcta.
- Otros problemas que obtuve se debieron a la descarga de las versiones de API requeridas a las que apunté en mi proyecto, así como a la coincidencia de minSdkVersion y targetSdkVersion en los archivos AndroidManifest.xml y gradle.build.
- Luego revisé la estructura de mi proyecto e hice los ajustes correctos o agregué la sección "sourceSets" en mis archivos build.gradle.
- Finalmente, copié mis dependencias de terceros (soporte joda.time, android.v4) a mi carpeta lib.
No estoy seguro de cuál resolvió el problema, pero todo esto lo resolvió con seguridad. Decidí poner todo esto a fin de ayudar a alguien que se queda atrapado. Use esto como una lista de verificación.