업데이트 후 Android 스튜디오의 리소스 오류 : 리소스를 찾을 수 없음


101

최근 Android Studio로 업데이트 한 후 이전에 작동했던 프로젝트를 컴파일하는 데 문제가 있습니다. 처음에는 다음과 같은 오류가 발생했습니다.

/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'.

gradle 파일의 sdk 빌드 대상을 23으로 업데이트 하여이 특정 문제가 해결되었지만 apache.http 패키지 오류가 많이 남았습니다 (특히 http 항목에 사용하는 많은 apache 패키지가 이제 사라졌습니다. SDK 23에서).

제가하고 싶은 것은 이상한 리소스 오류를 해결하는 것입니다.하지만 sdk 23으로 업데이트하지 않고 서요. 나는 지금 당장 우리의 도구 라이브러리를 다시 작성하여 apache http 구성 요소의 새로운 구현이 발행 된 것을 사용할 시간이 없습니다. 누구에게 아이디어가 있습니까?


appcompat_v7 res / values-v23 / styles.xml 자체에서 오류가 발생하지 않습니까 (프로젝트가 아닌)?
Solace

1
질문을 이해하지 못 하셨나요? 위에 게시 된 오류의 파일 경로에 표시된대로 생성 된 파일에서 문제가 발생했습니다.
James Dobson

생성 된 파일에서 오류가 발생하면 라이브러리 버전과 일치하도록 gradle에서 빌드 도구를 업데이트해야합니다. ie buildToolsVersion "23.0.1"
BK Batchelor

답변:


78

build.gradle 파일의 appcompat 버전을 다시 22.2.1 (또는 이전에 사용하던 버전)으로 변경합니다.


5
감사합니다. 이것이 해결책이었습니다. 여기 지침을 따랐습니다. code.google.com/p/android/issues/detail?id=183122#makechanges, 특히 scott에서 제공하는 솔루션입니다. 내 sdk 폴더에서 23.0.0을 삭제하고 SDK 관리자에서 버전 23 sdk를 삭제 한 다음 정리 및 재 구축을 수행해야했습니다
James Dobson

4
James, 해결책에 감사드립니다. 그러나 나는이 PITA 상황에 놀랐습니다. appcompat-v7 : 22.2.1을 설치 한 적이 없기 때문입니다!
누군가 어딘가에

Eclipse에서 수행하는 방법이 있습니까?
Solace

10
@Solace Eclipse는 쓸모가
뒤로 패커

6
@BackPacker 아니요. Android Studio가 문제입니다. 나는 좋은 컴퓨터를 가지고 있으며 Android Studio는 간단한 hello world 앱을 컴파일하는 데 오랜 시간이 걸립니다.
TheRealChx101

197

compileSdkVersion을 23으로 설정해야합니다.

API 23 Android는 더 이상 사용되지 않는 Apache Http 패키지를 제거 했으므로 서버 요청에 사용하는 경우 다음 링크에 useLibrary 'org.apache.http.legacy'명시된대로 build.gradle 에 추가해야합니다 .

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

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

1
작동하지만 새 SDK 버전을 설치해야합니다. API 23 (Android 6.0 플랫폼). 이렇게하면 최신 장치를 지원할 수 있습니다. 그렇기 때문에 "appcompat 버전"을 최신 버전으로 변경하면 최신 SDK 버전이 필요합니다.
JamesDeHart 2015-08-20

4
이 답변은 22.2.1로 돌아갈 것보다 훨씬 낫다
요른 Buitink

4
확실히 이상적인 대답이며 대부분의 사람들에게 분명히 올바른 행동 방침이지만 sdk 버전을 업데이트하지 않고 문제를 해결하려는 내 질문에는 대답하지 않습니다. 이렇게하면 우리가 의존하는 라이브러리가 손상되지만 당시 업데이트 할 시간이 없었습니다. 우리는 이후 새로운 기능을 사용하기 위해 라이브러리를 업데이트했고 우리는 이제 안전하게 23 SDK 업데이트 할 수 있습니다
제임스 돕슨에게

@RobertoB. 감사합니다. 좋은 정보입니다. 우리는 이미 새로운 아파치 라이브러리를 사용하도록 코드베이스를 업데이트했지만 다른 사람들에게 도움이되기를 바랍니다!
James Dobson

이것이 OP가보고하는 오류 메시지와 어떤 관련이 있습니까? compileSdkVersion이 유효한 해결 방법이라고 생각하지만 레거시 아파치 라이브러리를 사용하는 것은 간접적 인 요구 사항입니다.
mdelolmo 2015 년

21

프로젝트 build.gradle 파일에서 ... 아래와 같이 작성하십시오 .. appcompat 버전을 v7.23.0.0에서 v7.22.2.1로 변경하여 오류를 해결했습니다.

dependencies

{

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

}

아래 스크린 샷은 이해를 돕기위한 것입니다.


1
아냐 아냐 아냐 .... 이럴 줄 몰랐어! 그러나 이것은 작동했습니다! 23.0.1로 업데이트하는 이유는 무엇입니까?
sud007

이것은 내 +1을 얻습니다. 누군가가 당신에게 즉시 말하는 모든 것을 최신 버전으로 업데이트하는 것이 항상 적절하지는 않습니다. 이것은 원래 질문에 대한 답을 얻고 문제를 해결합니다.
Mark Smith

10

주의, 오답이 온다! 하지만 아파치 라이브러리가없는 사람은 누구나

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


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

}

도움이 됐습니다.


Apache 라이브러리에 왜 그렇게 문제가 있습니까?
NinjaCoder


2

최신 SDK 및 Android Studio를 다운로드 한 후에도 오류가 발생하는 경우 나는 초보자입니다. 내가 한 일은 1. 최근 SDK 다운로드 (i was) 2. Open file-Project structure (ctrl + alt + shift + S) 3. 모듈에서 앱 4. 속성 탭에서 .. api 23 Android 6.0 marshmallow (latest)로 컴파일 sdk 버전 변경

adk 버전을 컴파일하고 buildtools가 동일한 버전인지 확인하십시오 (23).

이 며칠 동안 내가했던 것처럼 그가 고통받지 않도록 누군가에게 도움이되기를 바랍니다.


2

모든 버전을 일치 시키십시오.

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

그것은 나를위한 일입니다.


1

compileSDK는 appCompat 버전과 일치해야합니다. TargetSDK는 여전히 22 일 수 있습니다 (예 : 새 권한 모델로 아직 업데이트하지 않은 경우).


1

당신이 가지고 있다면 :

/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'.

오류, 당신은 변경해야합니다 appcompat, buildtools, sdk(23) 당신이하지를 변경하고 있어야합니다 같이 할 경우, 만 22 이 작업을 수행 :

  • 23 컴파일
  • 목표 22

0

build.grade가 다음과 같이 변경되었을 때만 작동합니다.

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

sdk 23이 설치되어 있지 않은 것으로 나타났습니다. 그래서 먼저 설치 한 다음 프로젝트를 다시 빌드했습니다. 그리고 그것은 잘 작동했습니다. 또한 compilesdkVersion은 23이어야합니다.


0

가장 먼저,

SDK 폴더를 확인하십시오. 저에게는 mydocuments / appdata / sdk .... 등등이었습니다. 따라서 기본적으로 내 sdk 폴더는 완전히 다운로드되지 않았으며 주로이 문제의 원인이되었습니다. 완전히 다운로드 된 다른 Android SDK (실제로 필요한 도구 섹션 및 추가 항목 포함)를 사용하거나 이전에 Eclipse Android 개발을 위해 다운로드 한 Eclipse SDK를 사용해야합니다. 그런 다음 프로젝트를 다시 빌드-> 청소하십시오.

시도 할 가치가 있습니다.


0

API 23 (Android 6.0)을 사용하도록 업그레이드하거나 Gradle에서 appcompat-v7을 22.2.2 버전으로 다시 변경하세요. 이것은 Google Play 서비스를 추가 할 때 나를 위해 작동합니다.


0

방법 1 : Api 23을 설치하지 않았습니다. API 23을 설치하십시오.

방법 2 :

build.gradle 파일의 appcompat 버전을 다시 22.0.1 (또는 그 이하)로 변경합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.