web-dev-qa-db-ja.com

項目の親の取得中にエラーが発生しました:AppCompat v23へのアップグレード後、指定された名前と一致するリソースが見つかりません

私はいつもEclipseを使ってAndroidをプログラムしており、 Android Studio への移行を開始することにしました。私はすでにEclipse用に持っていたのと同じSDKを使うことにしました。

  • 新しいプロジェクトを始めました
  • 最小SDK 4.0を設定する(APIレベル14)
  • 空白のアクティビティを選択する
  • アクティビティ名およびレイアウト名に使用されるデフォルト名
  • ヒットフィニッシュ

数秒後にGradleはビルドを終了し、ファイルTeste4\app\build\middleates /展開されたaar\com.Android.support\appcompat-v7\23.0.0\res\valuesに次のメッセージを含む2つのエラーを投げます-v23\values-v23.xml:

エラー:(2)アイテムの親の取得中にエラーが発生しました:指定された名前 'Android:TextAppearance.Material.Widget.Button.Inverse'と一致するリソースが見つかりません。 

エラー:(2)アイテムの親の取得中にエラーが発生しました:指定された名前 'Android:Widget.Material.Button.Colored'に一致するリソースが見つかりませんでした。 

[ファイル] - > [プロジェクト構造] - > [モジュール]:[app](左側の列) - > [プロパティ]タブの下に、次のバージョンが設定されています。

  • "Sdkのバージョンをコンパイル":Android 5.1(API Level 22)
  • "ビルドツールのバージョン":23.0.2

これを修正するために私は何をすべきですか?

Stack Overflow question APPCOMPAT-V7:21.0.0 ':指定された名前に一致するリソースが見つかりませんでした:ATTR' ANDROID:ACTIONMODESHAREDRAWABLE 'で提案されていることを既に試しましたが、そうではありません作業。

747
Vini.g.fer

コンパイルSDKのバージョンは、サポートライブラリのメジャーバージョンと一致している必要があります。

サポートライブラリのバージョン23を使用しているので、Android SDKのバージョン23に対してコンパイルする必要があります。

あるいは、最新のサポートライブラリv22に切り替えることで、Android SDKのバージョン22に対してコンパイルを続けることができます。

1131
Tanis.7x

これは、アップデート後にAndroid StudioがデフォルトでAPI version 2を使用するために発生します。

以下は私のために働いた:

押す Ctrl + Shift + Alt + S プロジェクト構造ページに移動します。プロパティタブを開き、ビルドツールエリアで23.0.22.0.1(または以前に使用していたものと同等)に変更して、プロジェクトを再ビルドします。

それでもうまくいかない場合は、gradle:appに進んでください。

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

上記のようにv7:23.0.v7:22.2.1に編集し、gradleを同期します。これは間違いなくうまくいきます。

134
Sourav Nanda

Android Studioをアップデートすると、デフォルトでAPIバージョン23が使用されます。これが、その発生の主な理由です。だから、

まず、build.gradle(Module:app)でAppCompatのバージョンを確認してください。

Enter image description here

23に変更した後にエラーが発生した場合それからちょうどダウンロードしてください

Compile Sdk Version to API 23, and Build Tools Version to 23.0.0

sDKマネージャから。ダウンロード済みの場合:

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マネージャ]ボタンをクリックしてダイアログを開きます。

Enter image description here

[SDK Platform]をクリックして、Android 6.0がダウンロードされているかどうかを確認します。

そうでなければ、それからそれを最初にダウンロードしてください。ダウンロードが完了したら、をクリックします Apply

Enter image description here

今度は設定から​​あなたのプロジェクトに変更を加える必要があります。次にを押しますCtrl + Alt + Shift + S設定を開く

  1. リストからアプリをクリックします。
  2. クリックプロパティ
  3. コンパイルSDKのバージョンをAPI 23に変更します。
  4. ビルドツールのバージョンを23.0.0に変更します。

Enter image description here

あなたのプロジェクトを再構築することを忘れないでください。

その後、あなたのエラーがなくなります。

113
Ravikant Paudel

ターゲットを以前のバージョンのGooglePlayServicesまたはAppCompatv7に変更しようとしても機能しない場合は、プロジェクトとライブラリの依存関係があるかどうかを確認してください。このプロジェクトは、これらのライブラリの最新バージョンをターゲットにします。それは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に設定すると便利なことがあります。

70
Pelanes

私は前の答えに同意します。コンパイルSDKのバージョンはサポートライブラリと一致する必要があります。これが私がしたことです。

  1. あなたはSDK Managerに行き、SDK Platformの下で、APIレベル23でAndroid 5.Xをインストールすることができます。
  2. [プロジェクト構造]で、[SDKのバージョンをコンパイル]を[API 23]に、[ビルドツールのバージョン]を23.0.0に変更します。

それからそれは問題なく造るべきです。

35
Stucky

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'
}
22

この問題は、コンパイルSDKのバージョンがAndroid Supportライブラリのメジャーバージョンと一致する必要があるために発生します。

私の場合はAndroid Support Libraryバージョン23を持っているので、Android SDK version 23に対してコンパイルしなければなりませんでした。そしてこれをbuild.gradleファイルで変更しなければなりませんでした。

enter image description here

あなたの中にはSDKをインストールする必要がある人もいます、Android 6.0 (API 23)

enter image description here

プロジェクトを許可ファイルと同期させることを忘れないでください

15
Elenasys
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'
}
12
dhiku

プロジェクトを最新バージョンでコンパイルする必要がありますので、SDKからアップデートしてインストールしてください。プロジェクトをsync project with Gradle fileボタンで同期します。
既存のバージョンを続行することもできますが、イメージの下に正しくインストールされていることを確認してください。 enter image description here

必要に応じてプロジェクトを同期します。 

enter image description here

それは助けるかもしれません。

9

私は解決策を見つけました、SDKを更新したときに問題が始まり、その後異なるbuildToolsVersion('22 .0.1 ')を使用し、異なるsupportlibrary likecompile 'com.Android.support:appcompat-v7:23.0.0'、下の画像であなたを示しています

enter image description here

これは、「Android.widget.Material...」の問題を引き起こしていました。その後、サポートライブラリに「com.Android.support:appcompat-v7:22.0.1」とそのDONEをコンパイルします。 (スクリーンショットの下に表示)

enter image description here

9
Naveed Ahmad

Tanis.7xで指摘されているように、サポートライブラリのバージョン(23)はtargetSdkVersion(22)と一致しません

これを修正するには、次のようにします。 

アプリモジュールのbuild.gradeファイルで、次のコード行を変更します。

compile 'com.Android.support:appcompat-v7:23.0.0'

に 

compile 'com.Android.support:appcompat-v7:22.+'

これはSdkVersion 22と互換性のある最新バージョンのappcompatを使用します。

8
RWIL

コンパイルSDKのバージョンは、サポートライブラリのメジャーバージョンと一致している必要があります。これはあなたの問題に対する解決策です。 Gradleスクリプトのbuild.gradleファイルで簡単に確認できます。 Fx:compileSdkVersionが23の場合、コンパイルライブラリは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でそれをチェックすることができます: enter image description here

7
Oskar

私の場合、それはグーグルプレイサービスのより高いバージョンでした。私はそれらを7.0.0(8.xではない)に設定しましたが、すべて問題ありませんでした。

6
Alecs

私はAPI 23から22にダウングレードしたいと思い、このエラーを得ました。コンパイルするためにプロジェクトの all 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'
}
5
CoolMind

これは私を助けたものです: 特定のAndroidプラットフォームを追加する

すべきことは次のとおりです。私の場合はcordovaでしたが、ionicphonegap、およびその他のフレームワークについても同様です。

  1. プロジェクトにインストールされているすべてのプラットフォームを一覧表示します:cordova platform list。あなたはこのようなものを見るでしょう:

enter image description here

  1. androidプラットフォームを削除します:cordova platform remove Android

  2. それから特定のAndroidプラットフォームを追加します:cordova platform add [email protected]

がんばろう! :)

4
Lentyai

私は同じ問題を抱えています。各サブモジュールのgradle.buildを最新のコンパイラバージョンに更新することで問題を解決しました。

3
sonida

すべて素晴らしいものですが、SDKビルドツールのダウンロード先を説明した人は誰もいません 

Everything is greate but none of you explained where to download the SDK build tools

2
Stav Bodik

SDK Manager

これらすべてが最新であることを確認してください。

1
Ganesh Kanna

モジュール上:app(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'
}

プロジェクト:nameAppXXXX(Gradle)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:1.2.3'

    }
}

allprojects {
    repositories {
        jcenter()
    }
}

そして、AppCompatActivityのアクティビティを例えばActivityに編集します。

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);
    }


}
1
Alex Zaraos

別の解決策:に移動します

\sdk\extras\Android\m2repository\com\Android\support\appcompat-v7\23.x.x

7-Zipまたはwinrarで.aarファイルを開き、resフォルダでvalues-23フォルダを削除して変更を保存します。

1
Ali Zarei

Android Studioをアップグレードします。

私はAndroid Studio 1.3.1でこの問題を抱えていて他の答えのどれも私のために働きませんでした、しかし1.5.1にアップデートした後問題がなかったです。

1
Matthew Read

PhoneGap(クロスプラットフォーム)を使用していて、上記と同じ問題が発生した場合は、以下のコマンドを使用してAndroidプラットフォームを削除してください。

phonegap platform Androidを削除します

そしてもう一度追加してください。

phonegapプラットフォームでAndroidを追加

それから問題は私のために解決しました。

1

他の人がすでに述べたように、あなたのcompile sdk versionはあなたのsupport library'sメジャーバージョンと一致する必要があります。ただし、これはsubprojectsにも当てはまります。

その場合は、次のスクリプトを使用してsubprojects compile 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ファイルに追加してください。

0
TheBaj