appcompat-v7: 21.0.0 ': no ​​se encontró ningún recurso que coincida con el nombre de pila: attr' android: actionModeShareDrawable '

376

Cuando intento utilizar la última biblioteca de soporte de appcompat-v7 en mi proyecto, aparece el siguiente error:

/Users/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

¿Cómo puedo solucionar esto?

loeschg
fuente
1
Tengo este problema en eclipse. Tuve más de 100 errores porque mis herramientas de compilación de SDK no se actualizaron a la versión 21. Sin embargo, ahora tengo diferentes errores, así que ... ve a buscarlos.
RED_
Hoy desinstalé y reinstalé Extras / Android Support Library (versión 21.0.2) y noté que su proyecto.properties todavía apunta incorrectamente a target = android-19, que es la raíz del problema. Debería ser 21, pero es un archivo generado, no editable a mano. Vea la respuesta aceptada para la solución.
JulianSymes
@RED_, no se puede resolver el símbolo 'android: Theme.Material.Light' en <style name = "AppBaseTheme" parent = "android: Theme.Material.Light"> </style> en valules-v21 en android studio
Pankaj Nimgade
@PankajNimgade No entiendo ... ¿necesitas ayuda?
RED_
@RED_, sí, necesito ayuda desesperadamente, en mi computadora parece que no puedo detectar nada para Material Theme o cualquier cosa que comience con Android en valores-v21 \ styles, amablemente
ayúdenme

Respuestas:

598

Si bien la respuesta de loeschg es absolutamente correcta, solo quiero dar más detalles y dar una solución para todos los IDE (Eclipse, IntellJ y Android Studio) incluso si los errores difieren ligeramente.


Pre requisitos

Asegúrese de haber descargado la última versión extras, así como a Android 5.0 SDKtravés del SDK-Manager.

Imagen del administrador de SDK


Android Studio

Abra el build.gradlearchivo de su módulo de aplicación y cambie su compileSdkVersiona 21. Básicamente, no es necesario cambiar la targetSdkVersionversión del SDK a 21, pero se recomienda ya que siempre debe apuntar a la última versión de compilación de Android .
Al final, tu archivo gradle se verá así:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Asegúrese de sincronizar su proyecto después.

Recordatorio de Android Studio Gradle Sync


Eclipse

Cuando se usa v7-appcompaten Eclipse, debe usarlo como un proyecto de biblioteca. No es suficiente simplemente copiar el * .jar a su /libscarpeta. Lea este tutorial paso a paso (click) en developer.android.com para saber cómo importar el proyecto correctamente.

Tan pronto como se importe el proyecto, se dará cuenta de que algunas carpetas en la /rescarpeta están subrayadas en rojo debido a errores como los siguientes:

Errores en Eclipse

error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material'.
error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.*'
error: Error: No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

Solución

Lo único que tiene que hacer es abrir el project.propertiesarchivo android-support-v7-appcompaty cambiar el objetivo de target=android-19a target=android-21.
Luego, simplemente haga un Project --> Clean...para que los cambios surtan efecto.


IntelliJ IDEA (sin usar Gradle)

De manera similar a Eclipse, no es suficiente usar solo el android-support-v7-appcompat.jar; tienes que importar el appcompatcomo un módulo. Lea más sobre esto en este StackO-Post (clic) .
( Nota: si solo usa el .jar, obtendrá NoClassDefFoundErrorsRuntime )

Cuando intente construir el proyecto, enfrentará problemas en las res/values-v**carpetas. Su ventana de mensaje dirá algo como lo siguiente:

Error:android-apt-compiler: [appcompat]  resource found that matches the given name: attr 'android:colorPrimary'.
Error:(75, -1) android-apt-compiler: [appcompat] C:\[Your Path]\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
// and so on

Solución

Haga clic derecho en el appcompatmódulo -> Abrir configuración del módulo (F4) -> [Pestaña de dependencia] Seleccione la plataforma Android API 21 del menú desplegable -> Aplicar

Seleccione la plataforma API 21

Luego simplemente reconstruya el proyecto (Build -> Rebuild Project) y estará listo para comenzar.

contrarrestar
fuente
2
También estoy enfrentando el mismo problema en el eclipse después de cambiar el objetivo de target = android-19 a target = android-21 también obteniendo un error en la carpeta de valor amigo
prabhakaran
1
Cuando cambio AppCompat a 5.0 en eclipse, ya no se genera y la carpeta .bin está vacía.
Clive Jefferies
1
Impresionante, realmente estaba luchando desde los últimos 2 días, pero su truco para cambiar Android-19 a 21 funcionó ... Gracias, hombre
Mukesh Garg
1
Usando Eclipse, tuve que actualizar el objetivo del proyecto a 21 en todos los proyectos que estaban usando la biblioteca appcompat, no solo en el proyecto appcompat en sí.
Bianca Daniciuc
1
Actualmente estoy luchando con los problemas anteriores mencionados en eclipse / android. Realmente es una carga de bollocks impenetrables poco confiables.
AndyUK
123

Esto es probable porque no ha configurado su compileSdkVersion21 en su archivo build.gradle. Probablemente también quieras cambiar tu targetSdkVersiona 21.

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Para empezar, esto requiere que haya descargado las últimas actualizaciones de SDK.

Administrador de Android Studio SDK

Una vez que haya descargado todas las actualizaciones (¡no olvide actualizar también la Biblioteca / Repositorio de soporte de Android, también!) Y haya actualizado su compileSdkVersion, vuelva a sincronizar su proyecto Gradle.

Editar: para Eclipse o usuarios generales de IntelliJ

Ver la respuesta de reVerse. ¡Tiene un paseo muy completo!

loeschg
fuente
2
Esta es la respuesta correcta. Actualizar a 21 requiere esto, las nuevas dependencias de appcompat, y debes descargar la rev 12 de los servicios de reproducción.
sbaar
1
Y asegúrese de ejecutar JDK 7
Chad Bingham
1
Si bien sigue siendo correcto, consulte la solución de @ reVerse. Es más completo :)
loeschg
no usé ninguno de los IDEs ni Gradle ... ¿es similar cuando uso Ant y Notepad?
Valen
22

`Siga los pasos a continuación:

está funcionando para mí. Para resolver este problema,

1.Haga clic derecho en la biblioteca appcompat_v7 y seleccione Propiedades

2.Ahora, haga clic en la opción de Android, establezca la ruta de compilación del proyecto como Android 5.0 (API nivel 21) Aplicar cambios.

3.Ahora vaya al archivo project.properties en la biblioteca appcompat_v7,

4. Establezca el objetivo del proyecto como: target = android-21

5.Ahora limpia + construye la biblioteca appcompat_v7 y tus proyectos`

madhu527
fuente
1
Utilicé tu camino y establecí el objetivo de Android-21 en el proyecto y la biblioteca y luego limpié ambos y listo ... gracias.
Md Mohsin
1
¿Dónde puedo encontrar la biblioteca appcompat_v7?
SleepNot
2
puedes encontrar appcompat_v7 lib en: adt-bundle-windows-x86_64 -> sdk -> \ extras \ -> android \ -> support -> v7
madhu527
Esta respuesta en combinación con la respuesta de loeschg anterior resolvió este problema en Eclipse.
Michael Todd
12

En caso de que no desee utilizar la API 21 como la API de destino y, por lo tanto, no desee utilizar el tema Material, debe utilizar una revisión anterior que pertenezca a la API 19>

compile "com.android.support:appcompat-v7:19.0.+"

Esto también ayuda a resolver su problema, solo depende de lo que quiera lograr.

vandus
fuente
Estoy de acuerdo contigo. Después de todo, no todos planean apuntar a
SDK
10

He encontrado este problema con play-services: 5.0.89. Actualización a 6.1.11 problema resuelto.

pepyakin
fuente
8

En Android Studio estaba tratando de configurar el compileSdkVersiony targetSdkVersionpara 19.

Mi solución fue reemplazar en la parte inferior de build.gradle, a partir de esto:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

A la versión anterior de la biblioteca appcompat:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}
Gianfranco P.
fuente
Estaba usando una versión más reciente de appcompact pero ahora quiero actualizarme a una versión anterior, pero recibo este error en la carpeta expl-arr
Antwan
3

Agregué otro proyecto a mi espacio de trabajo e intenté hacer referencia a una actividad de él en el archivo de manifiesto, y recibí este error. El problema es que estaba haciendo referencia incorrectamente a la biblioteca. Así es como solucioné el problema:

  • Haga clic derecho en proyecto
  • Seleccionar propiedades
  • Haga clic en Android en el menú izquierdo
  • Haga clic en Agregar
  • Por favor seleccione un proyecto de biblioteca

El jar entró en la carpeta Dependencias de Android y se solucionó este error.

vive el amor
fuente
Ejecuté tu secuencia. Luego tuvo un «Jar desajuste! Solucione sus dependencias »en la consola de Android porque los frascos en libs / y frascos en los proyectos dependientes de la biblioteca appcompat y de los servicios de Google Play no coincidían (tenían SHA-1 y la longitud del archivo jar no coincidían). Luchando aún más, considero que esto es un éxito.
Eugene Gr. Philippov
2

Asegúrate de limpiar tu proyecto en Android Studio (o eclipse),

Debería resolver tus problemas

Trineo Brendon
fuente
2
La limpieza de su proyecto en este caso no funciona, especialmente si acaba de descargar un nuevo SDK de Android, una biblioteca de aplicaciones, etc., ya que los errores no se limpiarán mágicamente sin encontrar los enlaces que faltan a otras bibliotecas y / o recursos de Android. La respuesta de ReVerse es correcta y más completa para aquellos que no saben cómo resolver los problemas con la última descarga de la API de Android nivel 21 por sí mismos.
ChuongPham el
2

La actualización al último complemento de gradle resuelve mi problema:

classpath 'com.android.tools.build:gradle:0.13.+'
avianey
fuente
0.14.0 se lanzó en realidad no hace mucho tiempo
loeschg
sí, todavía estaba usando 0.12 ... tal vez pueda ayudar a alguien más a actualizar a 0.13 o 0.14
avianey
2

Después de crear un segundo proyecto en el espacio de trabajo en eclipse, tuve este problema. Creo que es porque lo creé con una versión de SDK diferente y esto sobrescribió la biblioteca android-support-v7-appcompat.

Traté de limpiar todo pero fue en vano. En última instancia, la sugerencia anterior para editar project.properties y cambiar target = android-21 y configurar mi proyecto en Android 5.0, lo arregló.

fórmica
fuente
2

Lo que recomiendo es: (Esto me funciona después de muchos días con errores)

-Asegúrese de haber descargado:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

-Vuelva a descargar el ADT

-Haga una copia de seguridad de su proyecto.

-Debe tener el ADT, el espacio de trabajo y el proyecto que importaremos en el mismo disco (por ejemplo, C: /)

  1. Ahora elimine la compatibilidad de la aplicación y su proyecto.

  2. En eclipse: Archivo> Importar> Proyecto existente de Android> Siguiente> Examinar (la carpeta donde tiene su ADT) / sdk / extras / android / v7 / appcompat> Importar> Finalizar

  3. Ahora en el Explorador de paquetes eclipse: android-support-v7-appcompat / libs / Make en los dos JARS: haga clic con el botón derecho> Build Path> Agregar a Build Path

  4. Haga clic derecho en libs / folder> Buil Path> Configure Build Path y marque estos dos JARS> OK

  5. En la barra superior del eclipse> Proyecto> Limpiar

  6. Importe su proyecto> Archivo> Importar> Examine su proyecto> Finalizar

  7. Ahora, haga clic derecho en el archivo de proyecto y android-support-v7-appcompat> Propiedades> Android> Y seleccione la última API que aparece> Aceptar

  8. Haga clic derecho en el archivo de proyecto> Propiedades> Android> Agregar> android-support-v7-appcompat

  9. En la barra superior del eclipse> Proyecto> Limpiar

juldeh
fuente
2

Obtuve el mismo error cuando cambié la versión Compile SDK de API: 21 a API: 16. El problema era la versión de appcompat . Si necesita usar una versión anterior de la API de Android, también debe cambiar esta versión de appcompat. En mi caso ( para API: 16 ), tuve que usar appcompat-v7: 19. + .

Así que reemplazo las dependencias en build.gradle de la siguiente manera,

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

Y asegúrese de tener versiones anteriores de las versiones de appcompat en su SDK ingrese la descripción de la imagen aquí

mili
fuente
2

Estaba actualizado con todo y todavía recibí este error, no estoy seguro de por qué, pero creo que la imagen se corrompió de una manera extraña y después de reemplazar la imagen me deshice del error. Podría valer la pena probar con una imagen diferente :)

DoruChidean
fuente
1

Mi problema era que tenía otras bibliotecas a las que hacía referencia mi proyecto y esas bibliotecas tenían otra versión de appcompat referenciada. Esto es lo que hice para resolver el problema:

(Debe hacer una copia de seguridad de su proyecto antes de hacer esto)

1) Eliminé todas las carpetas de diseño de appcompat (ej: / res / layout-v11).

2) Resolvió los problemas que surgieron de eso, generalmente un error en menu.xml

3) Volver al proyecto principal y agregar la biblioteca appcompat, limpiar, ¡y todo funciona!

truco
fuente