appcompat-v7 : 21.0.0 ': 주어진 이름과 일치하는 리소스를 찾을 수 없습니다 : attr'android : actionModeShareDrawable '
내 프로젝트에서 최신 appcompat-v7 지원 라이브러리를 사용하려고하면 다음 오류가 발생합니다.
/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'.
이 문제를 어떻게 해결합니까?
loeschg 의 대답 은 절대적으로 정확하지만 오류를 약간 다르게하더라도 모든 IDE (Eclipse, IntellJ 및 Android Studio)에 대한 솔루션을 제공하고 싶습니다 .
전제 조건
SDK-Manager를 통해 최신 버전 extras
을 다운로드했는지 확인하십시오 Android 5.0 SDK
.
안드로이드 스튜디오
build.gradle
앱 모듈 의 파일을 열고 compileSdkVersion
21을 변경하십시오 . 기본적으로 targetSdkVersion
SDK 버전을 21 로 변경할 필요는 없지만 항상 최신 Android Build-Version을 대상으로 해야하므로 권장 됩니다.
결국 gradle-file은 다음과 같습니다.
android {
compileSdkVersion 21
// ...
defaultConfig {
// ...
targetSdkVersion 21
}
}
나중에 프로젝트를 동기화하십시오.
식
사용하는 경우 v7-appcompat
이클립스에서 당신은 라이브러리 프로젝트로 사용할 수 있습니다. * .jar을 /libs
폴더로 복사하는 것만으로는 충분하지 않습니다 . 읽어 보시기 바랍니다 이 (클릭) 에 대한 단계별 튜토리얼 developer.android.com을 제대로 프로젝트를 가져 오는 방법을 알기 위해.
프로젝트를 가져 오면 /res
다음과 같은 오류로 인해 폴더의 일부 폴더에 빨간색 밑줄이 표시됩니다.
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'.
해결책
project.properties
파일 을 열고 android-support-v7-appcompat
대상을에서 (으) target=android-19
로 변경하면 됩니다 target=android-21
.
그런 Project --> Clean...
다음 변경 사항을 적용하려면 그냥 수행하십시오 .
IntelliJ IDEA (Gradle을 사용하지 않음)
이클립스와 유사하지만 android-support-v7-appcompat.jar
; 만 사용하는 것만으로는 충분하지 않습니다 . 를 appcompat
모듈 로 가져와야합니다 . 이 StackO-Post 에서 자세한 내용을 확인하십시오 (클릭) .
( 참고 : 당신은 단지를 사용하는 경우 .jar
당신이 얻을 것이다 NoClassDefFoundErrors
런타임에 )
프로젝트를 만들려고 할 때 res/values-v**
폴더에 문제가 있습니다. 메시지 창에 다음과 같은 내용이 표시됩니다.
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
해결책
appcompat
모듈을 마우스 오른쪽 버튼으로 클릭 -> 모듈 설정 열기 (F4)-> [종속성 탭] 드롭 다운에서 Android API 21 플랫폼을 선택하십시오-> 적용
그런 다음 프로젝트를 다시 빌드 (Build-> Rebuild Project)하면 좋습니다.
compileSdkVersion
build.gradle 파일에서을 21로 설정하지 않았기 때문일 수 있습니다 . 또한 targetSdkVersion
21 로 변경하고 싶을 수도 있습니다 .
android {
//...
compileSdkVersion 21
defaultConfig {
targetSdkVersion 21
}
//...
}
이를 위해서는 최신 SDK 업데이트를 다운로드해야합니다.
모든 업데이트를 다운로드 하고 (Android 지원 라이브러리 / 리포지토리도 업데이트하는 것을 잊지 마십시오!) compileSdkVersion을 업데이트 한 후 Gradle 프로젝트를 다시 동기화하십시오.
편집 : Eclipse 또는 일반 IntelliJ 사용자의 경우
reVerse의 답변을 참조하십시오. 그는 매우 철저한 안내를 받았습니다!
`아래 단계를 따르십시오 :
이 문제를 해결하려면
1. appcompat_v7 라이브러리를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.
2. 이제 Android 옵션을 클릭하고 프로젝트 빌드 경로를 Android 5.0 (API 레벨 21)으로 변경 사항을 적용하십시오.
3. 이제 appcompat_v7 라이브러리의 project.properties 파일로 이동하십시오.
4. 프로젝트 대상을 다음과 같이 설정하십시오 : target = android-21
5. Now Clean + appcompat_v7 라이브러리 및 프로젝트 빌드
API 21을 대상 API로 사용하지 않기 위해 Material Theme를 사용하지 않으려면 API 19에 속하는 이전 개정을 사용해야합니다.>
compile "com.android.support:appcompat-v7:19.0.+"
또한 문제 해결에 도움이되며 달성하고자하는 대상에 따라 다릅니다.
play-services : 5.0.89에서이 문제가 발생했습니다. 6.1.11로 업그레이드하면 문제가 해결되었습니다.
Android Studio에서 compileSdkVersion
and targetSdkVersion
를 설정하려고 했습니다 19
.
내 솔루션의 하단에 교체했다 build.gradle
, 에서 이 :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
appcompat 라이브러리의 이전 버전으로 :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}
작업 공간에 다른 프로젝트를 추가하고 매니페스트 파일에서 해당 작업을 참조하려고하는데이 오류가 발생했습니다. 문제는 라이브러리를 잘못 참조하고 있다는 것입니다. 이것이 내가 문제를 해결 한 방법입니다.
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오
- 속성 선택
- 왼쪽 메뉴에서 Android를 클릭하십시오.
- 추가 클릭
- 도서관 프로젝트를 선택하십시오
jar가 Android Dependencies 폴더로 이동하여이 오류가 수정되었습니다.
안드로이드 스튜디오 (또는 일식)에서 프로젝트를 청소하십시오.
문제를 해결해야합니다
최신 gradle 플러그인으로 업그레이드하면 내 문제가 해결됩니다.
classpath 'com.android.tools.build:gradle:0.13.+'
일식에서 작업 공간에 두 번째 프로젝트를 만든 후이 문제가 발생했습니다. 다른 SDK 버전으로 작성했기 때문에 Android-support-v7-appcompat 라이브러리를 작성 했으므로 믿습니다.
나는 모든 것을 정리하려고 노력했지만 아무 소용이 없었다. 궁극적으로 위의 project.properties를 편집하고 target = android-21을 변경하고 내 프로젝트를 Android 5.0으로 설정하라는 제안이 수정되었습니다.
내가 추천하는 것은 : (이것은 며칠 후에 오류가 발생합니다)
-다운로드했는지 확인하십시오 :
- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS
ADT를 다시로드
-프로젝트의 보안 사본을 만드십시오.
-동일한 디스크에 가져올 ADT, 작업 공간 및 프로젝트가 있어야합니다 (예 : C : /)
이제 앱 compat과 프로젝트를 삭제하십시오.
일식에서 : 파일> 가져 오기> Android 기존 프로젝트> 다음> 찾아보기 (ADT가있는 폴더) / sdk / extras / android / v7 / appcompat> 가져 오기> 완료
이제 Eclipse 패키지 탐색기에서 android-support-v7-appcompat / libs / 두 JAR에서 작성하십시오. 마우스 오른쪽 단추로 클릭> 빌드 경로> 빌드 경로에 추가
libs / 폴더> Buil Path> Build Path 구성을 마우스 오른쪽 버튼으로 클릭 하고이 두 JAR을 확인하십시오.
상단 이클립스 바에서> 프로젝트> 정리
프로젝트 가져 오기> 파일> 가져 오기> 프로젝트 찾아보기> 완료
이제 프로젝트 파일과 android-support-v7-appcompat> 속성> Android>를 마우스 오른쪽 버튼으로 클릭하고 나타나는 최신 API를 선택하고 확인을 클릭하십시오.
프로젝트 파일> 속성> Android> 추가> android-support-v7-appcompat를 마우스 오른쪽 버튼으로 클릭하십시오.
상단 이클립스 바에서> 프로젝트> 정리
Compile SDK 버전을 API : 21에서 API : 16으로 변경했을 때도 같은 오류가 발생했습니다. 문제는 appcompat 버전이었습니다. 이전 버전의 Android API를 사용해야하는 경우이 appcompat 버전도 변경해야합니다. 필자의 경우 ( API : 16 ) appcompat-v7 : 19. + 을 사용해야 했습니다 .
따라서 build.gradle의 종속성 을 다음과 같이 바꿉니다 .
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}
SDK에 이전 버전의 appcompat 버전이 있는지 확인하십시오.
I was up to date with everything and still got this error, not sure why but I think the image was corrupted in a strange way and after replacing the image I got rid of the error. Might be worth to try with a different image :)
My problem was that I had other libraries that my project referenced and those libraries had another version of appcompat referenced. This is what I did to resolve the issue:
(You should back up your project before doing this)
1) I deleted all the appcompat layout folders (ex: /res/layout-v11).
2) Solved the problems that arose from that, usually an error in menu.xml
3) Back to main project and add appcompat library, clean, and everything works!
'Programming' 카테고리의 다른 글
package.json에서 git URL을 사용하는 분기 또는 태그에 의존합니까? (0) | 2020.02.26 |
---|---|
파이썬 객체가 문자열인지 확인하는 방법? (0) | 2020.02.26 |
C ++에서 대소 문자를 구분하지 않는 문자열 비교 (0) | 2020.02.26 |
Python으로 작성된 CSV 파일에는 각 행 사이에 빈 줄이 있습니다. (0) | 2020.02.26 |
오리진의 마스터 브랜치 파일 버전으로 되 돌리는 방법 (0) | 2020.02.26 |