error de recurso en Android Studio después de la actualización: No se encontró recurso


101

Después de una actualización reciente de Android Studio, tenemos problemas para compilar un proyecto que funcionaba anteriormente. Al principio recibimos el siguiente error:

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

Actualicé el objetivo de compilación sdk en nuestro archivo gradle a 23, lo que hizo que este problema específico desapareciera, pero nos dejó una tonelada de errores de paquete apache.http (específicamente, una tonelada de paquetes de apache que usamos para cosas http ahora se han ido en SDK 23).

Lo que quiero hacer es resolver el extraño error de recursos, pero sin actualizar a sdk 23. No tengo tiempo para reescribir nuestra biblioteca de herramientas ahora mismo para usar cualquier nueva implementación de los componentes http de apache que se haya emitido. ¿Alguien tiene alguna idea?


¿No aparece el error en appcompat_v7 res / values-v23 / styles.xml en sí (en lugar de en su proyecto)?
Solace

1
¿No estás seguro de entender tu pregunta? Obtuvimos el problema en un archivo generado como lo indica la ruta del archivo en el error publicado anteriormente.
James Dobson

Si el error ocurre en los archivos generados, entonces debe actualizar las herramientas de compilación, en gradle, para que coincidan con la versión de las bibliotecas. ie buildToolsVersion "23.0.1"
BK Batchelor

Respuestas:


78

Cambie la versión de appcompat en su archivo build.gradle de nuevo a 22.2.1 (o lo que estuviera usando antes).


5
Gracias, esta fue la solución. Seguí las instrucciones aquí: code.google.com/p/android/issues/detail?id=183122#makechanges específicamente, la solución ofrecida por scott. Tuve que eliminar el 23.0.0 en mi carpeta sdk, eliminar el sdk de la versión 23 en el administrador del SDK y luego hacer una limpieza y reconstrucción
James Dobson

4
James, gracias por la solución. Sin embargo, estoy jodidamente asombrado con esta situación de PITA, ¡porque nunca tuve instalado appcompat-v7: 22.2.1!
Alguien en algún lugar

¿Hay alguna forma de hacer eso en Eclipse?
Solace

10
@Solace Eclipse es inútil
Back Packer

6
@BackPacker No. Android Studio es el problema. Tengo una buena computadora y Android Studio tarda una eternidad en compilar una aplicación simple de hola mundo.
TheRealChx101

197

Debe establecer compileSdkVersion en 23.

Dado que API 23 Android eliminó los paquetes Apache Http obsoletos, si los usa para solicitudes del servidor, deberá agregar useLibrary 'org.apache.http.legacy'a build.gradle como se indica en este enlace:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}

1
Esto funcionará, pero querrá asegurarse de instalar la nueva versión del SDK. API 23 (plataforma Android 6.0). Esto le permitirá admitir dispositivos más nuevos. Por eso, cuando cambie la "versión de appcompat" a una versión más reciente, se requerirá la versión más reciente del SDK.
JamesDeHart

4
Esta respuesta es mucho mejor que volver al 22.2.1
Jörn Buitink

4
Sin duda, es una respuesta ideal y, obviamente, es el curso de acción correcto para la mayoría de las personas, sin embargo, no responde a mi pregunta, que era resolver el problema sin actualizar la versión sdk. Al hacerlo, se rompe una biblioteca de la que dependemos pero que no tuvimos tiempo de actualizar en ese momento. Desde entonces, hemos actualizado la biblioteca para hacer uso de las nuevas funciones y ahora podemos actualizar de forma segura a SDK 23.
James Dobson

@RobertoB. Gracias, esa es una buena información. Ya hemos actualizado nuestra base de código para usar las nuevas bibliotecas de apache, ¡pero esperamos que ayude a otros!
James Dobson

¿Cómo se relaciona esto con los mensajes de error que informa el OP? Creo que compileSdkVersion es una solución alternativa válida, pero el uso de la biblioteca apache heredada es solo un requisito indirecto.
mdelolmo

21

en el archivo build.gradle de sus proyectos ... escriba lo siguiente ... He resuelto ese error cambiando la versión de appcompat de v7.23.0.0 a v7.22.2.1 ..

dependencies

{

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

}

La siguiente captura de pantalla es para una mejor comprensión.


1
No NO No ... ¡No me esperaba esto! ¡¡PERO ESTO FUNCIONÓ !! Entonces, ¿qué sentido tiene actualizarlo a 23.0.1?
sud007

Este obtiene mi +1: no siempre es apropiado actualizar a la última versión de todo lo que alguien te diga inmediatamente. Este responde la pregunta original y me soluciona el problema.
Mark Smith

10

¡Atención, viene una respuesta incorrecta! Pero cualquiera que no tenga bibliotecas apache o algo así podría encontrar

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'    

}

útil, hizo el truco para mí.


¿Por qué tiene tanto problema con las bibliotecas de apache?
NinjaCoder


2

Si está recibiendo errores incluso después de descargar el SDK más reciente y Android Studio Soy un novato: Lo que hice fue 1. Descargar el SDK reciente (yo era) 2.Abrir la estructura del proyecto de archivo (ctrl + alt + shift + S) 3. En los módulos, seleccione la aplicación 4.

asegúrese de que compile la versión de adk y las herramientas de compilación sean de la misma versión (23)

Espero que ayude a alguien a que no sufra como yo durante estos dos días.


2

Intenta hacer coincidir todas las versiones:

compileSdkVersion 23
buildToolsVersion '23.0.0'
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.0.0'

Es un trabajo para mi.


1

compileSDK debe coincidir con la versión de appCompat. TargetSDK aún puede ser 22 (por ejemplo, en caso de que aún no haya actualizado al nuevo modelo de permisos)


1

si usted tiene :

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

error, debe cambiar su appcompat, buildtools, sdka 23 pero, si no les gusta cambiar y debe estar en haces 22 hacer esto:

  • compilar 23
  • objetivo 22

0

Funciona justo cuando se cambió build.grade a eso:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "blablabla"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

0

Noté que no tenía sdk 23 instalado. Así que primero lo instalé y luego reconstruí mi proyecto. Y funcionó bien. También compilesdkVersion debe ser 23


0

Ante todo,

Intente verificar su carpeta SDK, para mí, era mydocuments / appdata / sdk .... etc. Así que básicamente mi carpeta sdk no se descargó por completo, la fuente de este problema principalmente. Debe usar otro sdk de Android completamente descargado (incluida la sección de Herramientas y extras que realmente necesita) o usar el sdk de eclipse que puede descargar anteriormente para sus desarrollos de Android Eclipse. Luego construye-> limpia tu proyecto una vez más.

Vale la pena intentarlo.


0

Actualice para usar API 23 (Android 6.0) o vuelva a cambiar la versión appcompat-v7 a 22.2.2 en Gradle. Esto funciona para mí cuando agrego el servicio Google Play


0

Método 1: Se muestra. No instaló Api 23. Por lo tanto, instale API 23.

Método 2:

Cambie la versión de appcompat en su archivo build.gradle a 22.0.1 (o menos).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.