compilar appcompat v7: 26. + error al agregar servicios de reproducción al proveedor de ubicación de fusión
Tengo un problema y he mirado posibles preguntas y respuestas duplicadas y creo que ésta no es respondida por los demás por lo que lo pide aquí.
He actualizado mis servicios de juego para hacer uso del proveedor de ubicación fusionado y ahora el appcompat en mi gradle está mostrando un error.
- Cómo hacer que los complementos de Hugo y AndroidDevMetrics compile sólo en depuración:
- Gradle: añadir dependencia para un sabor específico de la biblioteca
- Gradle JUnit Espresso en el emulador connectedAndroidTest java.lang.IncompatibleClassChangeError
- Vista personalizada en una biblioteca aar local no accesible?
- Gradle issue inusual
Así que he creado un nuevo proyecto y comprobado el build.gradle en el nuevo proyecto y tienen exactamente el mismo appcompat pero mi proyecto está mostrando un error.
apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "au.com.itmobilesupport.sqltwo" minSdkVersion 17 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support:recyclerview-v7:26.+' compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+' testCompile 'junit:junit:4.12' compile 'com.google.android.gms:play-services-maps:11.0.0' compile 'com.google.android.gms:play-services:11.0.1' }
Es esta línea que muestra el error:
compile 'com.android.support:appcompat-v7:26.+'
Pero en un nuevo proyecto está bien. ¿Por qué estoy recibiendo el error?
ACTUALIZAR:
Si elimino estas dos líneas, entonces el error desaparece:
compile 'com.google.android.gms:play-services-maps:11.0.0' compile 'com.google.android.gms:play-services:11.0.1'
Pero los necesito así que todavía tengo el error.
- Android Studio: ¿Cómo crear un archivo build.gradle para usarlo en Jenkins?
- ¿Cómo puedo agregar una carpeta de origen generada a mi ruta de origen en Gradle?
- Pruebas de Android con Gradle: Cambie el nombre de archivo de salida de prueba de JUnit
- Cómo quitar comentarios en archivos XML sin procesar con Gradle cuando el archivo se empaqueta
- Inhabilitar la importación de Crashlytics
- Utilizar una convención de nomenclatura diferente para los apks firmados generados mediante el asistente en Android Studio
- Android Studio es increíblemente lento y laggy
- Crashlytics - diferentes nombres de paquetes para diferentes sabores gradle
Finalmente resolvió el problema con la ayuda de la respuesta de ZeroOne a una pregunta similar.
Lo que me llevó a mirar a ZeroOnes respuesta fue Google me da la razón, pero no como un error. Mi problema era que la línea siguiente es demasiado abarcadora y un montón de dependencias adicionales se agregaron que habría hecho la aplicación innecesariamente mayor.
compile 'com.google.android.gms:play-services:11.0.1'
Simplemente necesitaba ser más específico y el error desapareció.
Aquí está el gradle final.
apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "au.com.itmobilesupport.sqltwo" minSdkVersion 17 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support:recyclerview-v7:26.+' compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+' testCompile 'junit:junit:4.12' compile 'com.google.android.gms:play-services-maps:11.0.1' compile 'com.google.android.gms:play-services-location:11.0.1' }
Y esta es la línea específica que cambio lo anterior a:
compile 'com.google.android.gms:play-services-location:11.0.1'
Espero que ayude a alguien que se encuentra con el mismo problema.
Añada estas líneas a su archivo build.gradle
para obtener bibliotecas que no tenga basadas en el sitio de Google .
allprojects { repositories { jcenter() maven { url "https://maven.google.com" } } }
Precaución: El uso de dependencias dinámicas (por ejemplo, paleta-v7: 23.0. +) Puede provocar inesperadas actualizaciones de versiones y incompatibilidades de regresión. Le recomendamos que especifique explícitamente una versión de biblioteca (por ejemplo, paleta-v7: 25.4.0) .
- Implementación de ProgressDialog en la solicitud de subida múltiple
- Android AccountManager lanza AuthenticatorException: falla de enlace al agregar cuenta