No se encontró ningún recurso que coincida con el nombre dado: attr 'android: keyboardNavigationCluster'. al actualizar a la biblioteca de soporte 26.0.0

215

Tengo este problema al actualizar a la última versión 26.0.0 de la Biblioteca de soporte ( https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0 ):

Error: (18, 21) No se encontraron recursos que coincidan con el nombre de pila: attr 'android: keyboardNavigationCluster'.

/.../app/build/intermediates/res/merged/beta/debug/values-v26/values-v26.xml
Error:(15, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(18, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(15, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(18, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:Execution failed for task ':app:processBetaDebugResources'.

com.android.ide.common.process.ProcessException: no se pudo ejecutar aapt

El archivo es de la biblioteca de soporte:

<style name="Base.V26.Widget.AppCompat.Toolbar" parent="Base.V7.Widget.AppCompat.Toolbar">
    <item name="android:touchscreenBlocksFocus">true</item>
    <item name="android:keyboardNavigationCluster">true</item>
</style>

Estamos usando las siguientes versiones:

ext.COMPILE_SDK_VERSION = 26
ext.BUILD_TOOLS_VERSION = "26.0.1"

ext.MIN_SDK_VERSION = 17
ext.TARGET_SDK_VERSION = 26
ext.ANDROID_SUPPORT_LIBRARY_VERSION = "26.0.0"
ext.GOOGLE_PLAY_SERVICES_LIBRARY_VERSION = "11.0.2"

compile 'com.android.support:appcompat-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION
compile 'com.android.support:design:' + ANDROID_SUPPORT_LIBRARY_VERSION
compile 'com.android.support:recyclerview-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION

¿Algunas ideas?

Alécio Carvalho
fuente
55
sigue siendo un problema con la versión más reciente (26.0.1): developer.android.com/topic/libraries/support-library/…
Alécio Carvalho

Respuestas:

314

Pude resolverlo actualizando la versión SDK y las herramientas en Gradle compileSdkVersion 26 buildToolsVersion "26.0.1"

y support library 26.0.1 https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-1

Usuario XH6
fuente
44
Esto no funcionó para mí. Tuve que actualizar los servicios de Google Play a 11.2 y luego apareció el error anterior, y su respuesta no ayudó. También actualicé todas las cosas de soporte a 26.0.1 pero todavía no tuve suerte. ¿Tienes alguna otra idea?
Nandor Poka
Pero actualizar a 26 también tendrá un gran impacto en muchas otras cosas. Las notificaciones incluidas no funcionan hasta que se crean los canales adecuados para Android 8.0, ¿verdad?
Patric
55
@patric Su SDK de compilación no se dirige al SDK.
Usuario XH6
Si esta solución no funciona para usted, consulte la respuesta de Sam a continuación.
Benny
2
¿Qué sucede si no quiero actualizar compileSdkVersion de 25 debido a un requisito comercial? ¿Cómo deshacerse de esto?
binaryKarmic
53

Cambiar la versión del SDK de compilación:

compileSdkVersion 26

Versión de la herramienta de compilación:

buildToolsVersion "26.0.1"

Versión del SDK de destino:

targetSdkVersion 26

Dependencias:

compile 'com.android.support:appcompat-v7:26+'
compile 'com.android.support:design:26+'
compile 'com.android.support:recyclerview-v7:26+'
compile 'com.android.support:cardview-v7:26+'

Sincronizar Gradle.

Amar Gore
fuente
2
recibiendo advertencia: evite usar + en el número de versión.
Qadir Hussain
2
Esto funcionó para mí. eliminado + de todos para deshacerse de las advertencias
Qadir Hussain
2
no use +, desea obtener compilaciones reproducibles y tener control total sobre sus dependencias. No desea que su aplicación comience a generar
errores
1
No necesita actualizar el targetSdkVersionpara que esto funcione. Establecer eso en 26 tendrá otras implicaciones, es decir, debe hacer que su aplicación sea compatible con Android 8.0.
ataulm
en qué archivo debo añadir estas cosas puede guiarlo @ataulm
Ravi Mehta
35

Tuve que cambiar compileSdkVersion = 26y buildToolsVersion = '26.0.1'en todos mis build.gradlearchivos de dependencias

Erik Duisters
fuente
2
debe usar una constante en gradle.properties para todos sus números de versión y usarla en sus archivos build.gradle: api "com.android.support:appcompat-v7:$ANDROID_COMPATIBILITY_VERSION"
Snicolas
13

En mi proyecto react-native, este error se genera en el react-native-fbsdk. Actualizar lo react-native-fbsdk/android/build.gradlesiguiente soluciona el problema.

compileSdkVersion 26
buildToolsVersion "26.0.1"
peteroide
fuente
77
agregar a continuación a root build.gradle funcionó sin necesidad de editar el archivo build.gradle del módulosubprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' } } } }
Yalamber
9

Llegué exactamente al mismo error y busqué en Google todo el tiempo tratando de encontrar lo que estoy haciendo mal, ya que se genera un código de valores de compilación-26 y no estilos que proporcioné. Intenté todo, desde Gradle 4.0 hasta Android Studio preview 3.0 hasta canary channel, lo que sea.

Nunca encontré la respuesta en línea. Al final, pude volver al Dev Android Studio estándar y 2.3.3 Gradle cuando terminé por arreglarlo accidentalmente :).

Resultó que estaba tan concentrado en actualizar mi proyecto de biblioteca que no me di cuenta de que el error fue causado por un submódulo no utilizado (aplicación de demostración) que está anidado en mi proyecto de biblioteca. Una vez que actualicé el submódulo para que coincida con las 26 herramientas de compilación y más de 26 bibliotecas de diseño y soporte, mi problema desapareció.

No estoy seguro de si eso es lo que está viendo también, pero personalmente solo estaba actualizando la lib para liberar nuevamente, así que no me importaba el módulo de la aplicación de muestra, y el error parecía estar relacionado con 26 sdk que solo toqué en el módulo lib así que no estaba pensando en revisar el otro. Así que ese fue el problema todo el tiempo para mí. Espero que eso también te solucione. Tuve este error en 2 proyectos de biblioteca y lo solucionó en ambos.

Buena suerte de cualquier manera y si esto no resuelve su problema, comparta lo que hizo. Por cierto, las herramientas de compilación 26.0.01 y el diseño y soporte 26.1.0 es donde finalmente terminé yendo, aunque 26.0.1 también funcionó bien.

Sam
fuente
Realmente resuelve el problema (si tiene varios módulos)
D. Sergeev
8

Tenía este error exacto y me di cuenta de la mi compileSdkVersionse fijó en 25y mi buildToolsVersionse fijó en"26.0.1" .

Así que acabo de cambiar compileSdkVersiona26 y se sincronizan el Gradle. Me solucionó el problema.

EDITAR: mi targetSDKVersiontambién se configuró como26

Junaid Aziz
fuente
8

He tenido un error similar para react-native-youtube y react-native-oriente.

Descubrí que el build.gradle de esos Project usa compileSdkVersion 23pero la característica: android: keyboardNavigationCluster se agregó desde api 26(android 8).

Entonces, ¿cómo solucionarlo?

Una forma de solucionar esto fácilmente es editar su /android/build.gradle (!!! NOT /android/app/build.gradle) y agregar esos códigos en la parte inferior del archivo.

Esto le permite forzar el SDK y BuildTool-Version que usan sus submódulos:

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion "27.0.2"
            }
        }
    }
}
suther
fuente
7

También me enfrenté a este problema, solo necesita hacer 2 cambios:

Nombre de archivo: android / build.gradle menciona este código a continuación

subprojects {
   afterEvaluate { 
     project -> if (project.hasProperty("android")) { 
       android { 
        compileSdkVersion 26 buildToolsVersion '26.0.2' 
       } 
      }
    } 
}

Nombre de archivo: android / app / build.gradle cambie su versión compliesdk y buildToolVersion de esta manera:

compileSdkVersion 26 buildToolsVersion "26.0.2"

y en

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.2'
}
Revansiddh
fuente
7

Tuve el mismo problema con mi proyecto Ionic 2, todo lo que hice para resolver los problemas fue

  • Abra "carpeta_proyecto_iónico / plataformas / android / project.properties"
  • Cambiar target = android-25 a target = android-26
  • correr ionic build --release android

¡Espero que esto ayude a alguien!

Aweda
fuente
Mi proyecto cambió a target=android-26, pero aún muestra este error
Yuyang He
6
//Adding this to the root build.gradle solved my problem, thanks @Yalamber
subprojects {
        afterEvaluate { project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion 26
                    buildToolsVersion '26.0.2'
                }
            }
        }
    }
Pablo Rendón
fuente
¿Puede compartir más información con el código para comprender mejor su respuesta?
Prags
Por lo general, es mejor explicar una solución en lugar de solo publicar algunas filas de código anónimo. Puedes leer ¿Cómo escribo una buena respuesta , y también Explicar respuestas completamente basadas en código?
Anh Pham
1
¡Gracias! La mejor respuesta. Esencialmente, las dependencias del proyecto (proyectos node_modules) tenían diferentes versiones de SDK. Agregar este código al nivel raíz build.gradle asegura que todas estas dependencias usen la versión sdk especificada y que el proyecto pueda construir. : D
Nigh7Sh4de
4

Después de actualizar su estudio de Android a 3.0, si se produce este error, simplemente actualice las propiedades de Gradle, estas son las configuraciones que resolvieron mi problema:

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'
Ajayacharya
fuente
26.0.2La versión de compilación me arregló las cosas.
Karl Taylor
3

Actualicé mi proyecto app/build.gradlepara tener

compileSDkVersion 26
buildToolsVersion '26.0.1'

Sin embargo, el problema fue en realidad con el react-native-fbsdkpaquete. Tuve que cambiar la misma configuración en node_modules/react-native-fbsdk/android/build.gradle.

Karl Taylor
fuente
3

En Android Studio,
haga clic derecho en el proyecto (como tenía un proyecto Cordova, tenía CordovaLib y Android: seleccioné Android en mi caso),

  1. Seleccione Abrir configuración del módulo
  2. En el modal Estructura del proyecto que aparece, seleccione el proyecto en la sección de módulos en el panel lateral (nuevamente Android en mi caso)
  3. Haga clic en la pestaña Dependencias
  4. Haga clic en el botón verde más en la esquina superior derecha
  5. Seleccionar dependencia de biblioteca
  6. Seleccione app-compat-v7 del menú desplegable
  7. Proyecto limpio y reconstrucción
Jac
fuente
Esta es una forma mucho más fácil de solucionar esto que editando manualmente todos los archivos.
Robert Liberatore
2

Golpeé esto recientemente y recuerdo de dónde viene. Es una falta de coincidencia entre la versión Xamarin.Android. * Y la versión de Android SDK instalada.

Los 15.5.3valores predeterminados del nuevo proyecto VS2017 actual para nuGet Xamarin.Android.*son 25.4.0.2y la instalación VS predeterminada para el desarrollo multiplataforma son los siguientes paquetes de Android SDK:

  • Androide 7.1 - Turrón
    • Plataforma Android SDK 25
    • API de Google Imagen del sistema Intel x86 Atom

Si ha realizado una actualización de solución Nuget Xamarin.Android.*a 26.1.0.1continuación, tendrá que instalar el seguimiento en el SDK de Android:

  • Androide 8.0 : Oreo
    • Plataforma Android SDK 26
    • API de Google Imagen del sistema Intel x86 Atom
dskow
fuente
2

Estaba enfrentando el mismo problema para uno de mi proyecto PhoneGap (Android studio 3.0.1). Para resolver esto he seguido, el siguiente paso

1) Haga clic derecho en el nombre del proyecto (en mi caso, Android), seleccione "Abrir configuración del módulo"

2) Seleccionar módulos (Android y CordovaLib)

3) Haga clic en propiedades en la parte superior

4) Elija la versión del SDK de compilación (he elegido API 26: Android 8.0)

5) Elija la versión de Build Tools (he elegido 26.0.2)

6) Compatibilidad de fuente (1.6)

7) Compatibilidad objetivo (1.6)

Haga clic en Aceptar y reconstruya el proyecto.

El siguiente enlace muestra mi configuración para el paso que he seguido

https://app.box.com/s/o11xc8dy0c2c7elsaoppa0kwe1d94ogh https://app.box.com/s/ofdcg0a8n0zalumvpyju58he402ag1th

Chirag Purohit
fuente
2

cuando intenta cambiar targetSDKVersion 26 a 25 en ese momento, se encontró la solución No se encontró ningún recurso que coincida con el nombre dado: attr 'android: keyboardNavigationCluster'. al actualizar a la biblioteca de soporte 26.0.0

Simplemente cambie este código de su Build.gradle

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.0.1'
            }
        }
    }
}

a

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.2.0'
            }
        }
    }
}
Sanjay Hadiya
fuente
2

Tengo este problema al compilar react-native-fbsdk

Resolví este problema mediante el cambio build.gradledereact-native-fbsdk

de

compile('com.facebook.android:facebook-android-sdk:4.+')

a

compile('com.facebook.android:facebook-android-sdk:4.28.0')
Tuan Nguyen
fuente
1

Este problema fue causado por una de las bibliotecas para mí que necesitaba la versión 26 para la compilación.

Hacer que targetSdkVersion a 26 cause otros problemas y tendrás que ajustar tu aplicación para adaptarla a la plataforma Oreo. Esta no es la solución correcta para todos.

Solo haciendo el compileSdkVersion to 26ybuildToolsVersion to 26.0.2 funcionó para mí.

También se deben actualizar todas sus bibliotecas de soporte para usar 26.1.0 o posterior.

Mohammed Ibrahim
fuente
1

actualizar estos en gradle

compileSdkVersion 27 buildToolsVersion '27 .0.1 '

Artista404
fuente
1

Resolví este problema haciendo algunos cambios en el archivo build.gradle

Los cambios en root build.gradle son los siguientes:

subprojects {
   afterEvaluate { 
     project -> if (project.hasProperty("android")) { 
       android { 
        compileSdkVersion 26 
        buildToolsVersion '26.0.1' 
       } 
      }
    } 
}

Los cambios en build.gradle son los siguientes:

compileSdkVersion 26 
buildToolsVersion "26.0.1"

y

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.1'
}
Palak Jain
fuente
1

Para cualquiera que use nativescript y se enfrente a este problema: puede agregar

compileSdkVersion 26
buildToolsVersion '26.0.1'

en App_Resources / Android / app.gradle (debajo android {)

Luego ejecute tns platform remove androidy tns build androiden la raíz de su proyecto.

palia5
fuente
0

Asegúrese de tener Android SDK 8.0 en su entorno de desarrollo. Estaba teniendo el mismo problema en mi MAC e instalé SDK 8.0 y sus herramientas lo solucionaron. Tengo el mismo problema en Windows. Estoy descargando el SDK ahora.

Ph0b0x
fuente
0

Tuve el mismo problema con iónico.

cordova platform remove android
cordova platform add android@6.4.0

Y reemplazar en plataforma / android / projet.properties

cordova.system.library.1=com.android.support:support-v4+

A

cordova.system.library.1=com.android.support:support-v4:26+
Amr. Ayoub
fuente
0

Para esto, debe hacer las siguientes cosas: 1. Haga clic derecho en el proyecto, haga clic.

2.Abra la configuración del módulo-> en la pestaña de propiedades-> cambie el SDK de compilación y la versión de la herramienta de compilación a 26,26.0.0.

3.Haga clic en Aceptar.

Me está funcionando después de una hora de prueba.

S HemaNandhini
fuente
0

Resolví este problema haciendo lo siguiente:

compileSdkVersion 26
buildToolsVersion "26.0.1"

compile 'com.android.support:appcompat-v7:26.0.1'
compile 'com.android.support:design:26.0.1'
compile 'com.android.support:cardview-v7:26.0.1'
compile 'com.android.support:recyclerview-v7:26.0.1'
Aldemir Gomes
fuente
Solo use inglés en este sitio . Si prefiere usar portugués, hay Stack Overflow en Português .
Tom Zych el
-1

Simplemente borre su proyecto y vuelva a construir.

./gradlew  app:clean app:assembleDebug

Pero no funciona cuando targetSdkVersion o compileSdkVersion es 25.

Esdras
fuente