항목에 대한 상위 항목 검색 중 오류 발생:AppCompat v23으로 업그레이드한 후 지정된 이름과 일치하는 리소스를 찾을 수 없음
저는 항상 이클립스로 Android를 프로그래밍했고 Android Studio로 마이그레이션하기로 결정했습니다.이전에 Eclipse에 사용했던 것과 동일한 SDK를 사용하기로 결정했습니다.
- 새 프로젝트 시작
- 최소 SDK 4.0 설정(API 레벨 14)
- 빈 활동 선택사항 선택
- 활동 이름 및 레이아웃 이름에 사용된 기본 이름
- 히트 피니시
몇 초 후 Gradle이 빌드를 완료하면 Teste4\app\build\intermediates/exploded-aar\com.android 파일에 다음 메시지와 함께 두 개의 오류가 발생합니다.support\appcompat-v7\23.0.0\res\values-v23\values-v23.xml:
오류:(2) 항목의 상위 항목을 검색하는 중 오류가 발생했습니다.지정된 이름 'Android'와 일치하는 리소스를 찾을 수 없습니다.텍스트 모양입니다.재료. 단추, 단추.역'.
오류:(2) 항목의 상위 항목을 검색하는 중 오류가 발생했습니다.지정된 이름 'Android'와 일치하는 리소스를 찾을 수 없습니다.위젯, 재료. 단추. 색상'.
File -> Project Structure -> Modules: app(왼쪽 열) -> Properties 탭에서 다음 버전이 설정되어 있습니다.
- "컴파일 SDK 버전": Android 5.1(API 레벨 22)
- "빌드 툴 버전": 23.0.2
이 문제를 해결하려면 어떻게 해야 합니까?
Stack Overflow 질문 appcompat-v7:21.0.0': 지정된 이름과 일치하는 리소스를 찾을 수 없습니다. attr 'attr 'android:actionModeShareDrawable'.
컴파일 SDK 버전은 지원 라이브러리의 주 버전과 일치해야 합니다.
지원 라이브러리의 버전 23을 사용하고 있으므로 Android SDK의 버전 23을 기준으로 컴파일해야 합니다.
또는 최신 지원 라이브러리 v22로 전환하여 Android SDK 버전 22에 대해 컴파일을 계속할 수 있습니다.
업데이트 후 Android Studio에서 기본적으로 API 버전 23을 사용하기 때문에 이러한 문제가 발생합니다.
다음은 저에게 효과가 있었습니다.
+ + +를 눌러 프로젝트 구조 페이지로 이동합니다.속성 탭으로 이동하여 빌드 도구 영역에서 23.0.0을 22.0.1(또는 이전에 사용하던 것과 동일)로 변경하고 프로젝트를 다시 작성합니다.
그래도 안 되면 gradle:app으로 이동합니다.
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
위와 같이 v7:23.0.0을 v7:22.2.1로 편집하고 그라들을 동기화합니다.이것은 분명히 효과가 있을 것입니다.
Android Studio를 업데이트할 때 기본적으로 API 버전 23을 사용합니다. 이것이 발생하는 주요 원인입니다.그렇게,
먼저 build.gradle(모듈:app)의 AppCompat 버전을 확인합니다.그것은,
23으로 변경한 후 오류가 발생하면 다운로드만 하면 됩니다.
Compile Sdk Version to API 23, and Build Tools Version to 23.0.0
SDK Manager에서 다운로드할 수 있습니다.이미 다운로드한 경우:
1. Go to SDK Manager and
2. Under Project Structure, change *Compile SDK Version* to API 23, and *Build Tools Version* to 23.0.0
SDK Manager 버튼을 클릭하고 대화상자를 엽니다.
SDK Platform을 클릭하여 Android 6.0 다운로드 여부를 확인합니다.
그렇지 않으면 먼저 다운로드하십시오.다운로드를 완료한 후 를 클릭합니다.
이제 설정에서 변경 사항을 프로젝트에 적용해야 합니다.그런 다음 + + +를 눌러 설정을 엽니다.
- 목록에서 앱을 클릭합니다.
- 속성 클릭
- 컴파일 SDK 버전을 API 23으로 변경
- 빌드 도구 버전을 23.0.0으로 변경
프로젝트를 다시 빌드하는 것을 잊지 마십시오.
그러면 당신의 실수가 사라질 것입니다.
대상을 이전 Google Play Services 또는 AppCompat v7 버전으로 변경하려고 했지만 작동하지 않는 경우 프로젝트 라이브러리 종속성이 있는지 확인하십시오. 이 프로젝트는 이러한 라이브러리의 최신 버전을 대상으로 합니다.Google Maps Utils Library 프로젝트에서 발생했습니다.
대체:
compile 'com.google.android.gms:play-services:+'
로.
compile 'com.google.android.gms:play-services:8.3.0'
그러면 API 22를 대상으로 전체 타겟팅을 계속할 수 있습니다.
그래도 컴파일이 되지 않으면 compileSdkVersion API를 23으로 설정하고 targetSdkVersion을 22로 설정하는 것이 유용할 수 있습니다.
저는 이전 답변에 동의합니다.컴파일 SDK 버전이 지원 라이브러리와 일치해야 합니다.여기 제가 한 일이 있습니다.
- SDK Manager로 이동하여 SDK Platform에서 Android 5.X with API level 23을 설치할 수 있습니다.
- 프로젝트 구조에서 컴파일 SDK 버전을 API 23으로 변경하고 빌드 도구 버전을 23.0.0으로 변경합니다.
그러면 문제없이 지어질 것입니다.
compileSdkVersion을 23으로 설정해야 합니다.
패키지를 제거했으므로 사용할 API 23 Android를 추가해야 .'org.apache.http.legacy'
build.gradle
링크에 와 같이: " 이이같
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
...
//only if you use Apache packages
useLibrary 'org.apache.http.legacy'
}
이제 컴파일 SDK 버전이 Android 지원 라이브러리의 주 버전과 일치해야 하므로 이 문제가 발생합니다.
나의 경우에는 나는.Android Support Library
버전 23, 그래서 나는 반대로 컴파일해야 했습니다.Android SDK version 23
그리고 나는 내 안에서 이것을 바꿔야 했습니다.build.gradle
파일 이름:
중 일부는 SDK, 해야 할 입니다.Android 6.0 (API 23)
프로젝트를 그라들 파일과 동기화하는 것도 잊지 마십시오.
android {
compileSdkVersion 23
buildToolsVersion '23.0.1'
defaultConfig {
applicationId ""
minSdkVersion 14
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.google.code.gson:gson:2.3.1'
compile 'com.android.support:recyclerview-v7:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.1'
}
해결책을 찾았습니다. sdk를 업데이트한 후 다른 빌드를 사용하여 문제가 시작되었습니다.ToolsVersion('22.0.1')과 저는 컴파일 'com.android'와 같은 다른 지원 라이브러리를 사용하고 있었습니다.지원:appcompat-v7:23.0.0'으로, 아래 이미지에 표시됩니다.
이것은 "안드로이드"에 대한 문제를 제기하고 있었습니다.widget.material..." 그런 다음 compile 'com.android와 같은 지원 라이브러리에 동일한 버전을 사용했습니다.지원:appcompat-v7:22.0.1' 및 해당 DONE.(아래 스크린샷에 표시)
프로젝트를 최신 버전으로 컴파일해야 하므로 SDK에서 업데이트하고 설치합니다.를 동로트화와 sync project with Gradle file
단추.
기존 버전을 계속 진행할 수도 있지만 아래 이미지에 올바르게 설치되었는지 확인하여 API 22에 올바르게 설치되었는지 확인합니다.
필요한 경우 프로젝트를 동기화합니다.
도움이 될 수도 있습니다.
Tanis.7x에서 지적한 바와 같이 지원 라이브러리 버전(23)이 대상 SdkVersion(22)과 일치하지 않습니다.
다음을 수행하여 이 문제를 해결할 수 있습니다.
build.grade
의 앱 모듈의 , 행을 하세요.
compile 'com.android.support:appcompat-v7:23.0.0'
로.
compile 'com.android.support:appcompat-v7:22.+'
그러면 SdkVersion 22와 호환되는 최신 버전의 appcompat 버전이 사용됩니다.
컴파일 SDK 버전은 지원 라이브러리 주 버전과 일치해야 합니다.이것이 당신의 문제에 대한 해결책입니다.은 그라들 스크립트에서 할 수 있습니다.build.gradle
당신의 이라면. Fx: 만약 당신이compileSdkVersion
23에 .
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 340
versionName "3.4.0"
}
dependencies {
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.0.1'
}
Android Studoi에 지원되는 API 수준이 있는지 항상 확인하십시오.Android SDK에서 다음과 같이 확인할 수 있습니다.
나의 경우에는 구글 플레이 서비스의 더 높은 버전이었습니다.7.0.0(8.x가 아님)으로 설정했는데 문제가 없었습니다.
API 23에서 22로 다운그레이드 하고 싶었는데 이 오류가 발생했습니다.나는 모든 것을 바꿔야 했습니다. build.gradle
프로젝트의 파일을 컴파일할 수 있습니다.
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.yourapp.app"
minSdkVersion 14
targetSdkVersion 22
}
...
dependencies {
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:support-v4:22.2.1'
compile 'com.android.support:design:22.2.1'
compile 'com.google.android.gms:play-services-gcm:10.0.1'
}
이것이 저에게 도움이 되었습니다: 특정 안드로이드 플랫폼 추가
해야 할 일은 다음과 같습니다.나의 경우에는.cordova
하지만 같은 것이 관련이 있습니다.ionic
,phonegap
그리고 다음과 같은 다른 프레임워크:
- 합니다.
cordova platform list
다음과 같은 것을 볼 수 있습니다.
Android 플랫폼 제거:
cordova platform remove android
.그런 다음 특정 안드로이드 플랫폼을 추가합니다.
cordova platform add android@5.0.0
.
행운을 빌어요! :)
저도 같은 문제가 있어요.저는 gradle을 업데이트하여 문제를 해결했습니다.최신 컴파일러 버전의 각 하위 버전에 대한 빌드입니다.
다른 솔루션: 탐색
\sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.x.x
열다..aar
7-zip 또는 winrar가 있는 파일, res 폴더에서 제거values-23
변경사항을 폴더 및 저장합니다.
on 모듈: 앱(Gradle)
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.namepack.nameappxxxxx"
minSdkVersion 16
targetSdkVersion 21
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:21.0.3'
}
프로젝트: 이름 AppXXXX(Gradle)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
jcenter()
}
}
AppCompatHivity의 활동을 다음과 같이 편집합니다. 예:
package com.namepack.nameappxxxxx;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
public class NameClass extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
}
모든 것이 훌륭하지만 SDK 빌드 도구를 다운로드하는 위치를 설명한 사람은 아무도 없습니다.
이 모든 항목이 최신 상태인지 확인합니다.
Android Studio를 업그레이드합니다.
Android Studio 1.3.1에서 이 문제가 발생하여 다른 답변이 모두 작동하지 않았지만 1.5.1로 업데이트한 후에는 문제가 없었습니다.
폰갭(크로스 플랫폼)을 사용하고 있는데 위와 같은 문제가 발생했다면 아래 명령을 사용하여 안드로이드 플랫폼을 제거하기만 하면 됩니다.
폰갭 플랫폼 안드로이드 제거
그리고 다시 추가합니다.
폰갭 플랫폼 안드로이드 추가
그러면 문제가 해결되었습니다.
최신 SDK와 Android Studio를 다운로드한 후에도 오류가 발생하면 다음과 같이 처리했습니다.
- 최신 SDK 다운로드
- 파일 열기 - 프로젝트 구조(Ctrl + + + )
- 모듈에서 앱을 선택합니다.
- Properties 탭: 컴파일 SDK 버전을 API 23 Android 6.0 마시멜로(최신 버전)로 변경합니다.
저는 그것이 누군가에게 도움이 되어 그가 지난 며칠 동안 저처럼 고통받지 않기를 바랍니다.
다른 사람들이 이미 언급했듯이 당신의compile sdk version
일치해야 합니다.support library's
장조판그러나 이것은 또한 관련이 있습니다.subprojects
당신이 그것을 가지고 있다면요.
설정한 경우 다음을 설정할 수 있습니다.subprojects
다음 스크립트를 사용하여 sdk 버전을 컴파일합니다.
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
루트에 이 스크립트 추가build.gradle
파일.
언급URL : https://stackoverflow.com/questions/32075498/error-retrieving-parent-for-item-no-resource-found-that-matches-the-given-name
'programing' 카테고리의 다른 글
쿼리 효율성을 분석할 때 설명 명령에 의존해야 합니까? (0) | 2023.06.05 |
---|---|
Python과 교차 플랫폼 방식으로 경로가 절대 경로인지 상대 경로인지 확인하는 방법은 무엇입니까? (0) | 2023.06.05 |
ID가 추가되기 전에 ID를 얻을 수 있습니까? (0) | 2023.06.05 |
애니메이션 완료 후 CABasic Animation이 초기 값으로 재설정됨 (0) | 2023.06.05 |
Xcode의 후행 공백 잘라내기 (0) | 2023.06.05 |