appcompat-v7:21.0.0 ':指定された名前に一致するリソースが見つかりません:attr' android:actionModeShareDrawable '


376

プロジェクトで最新の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'.

どうすれば修正できますか?


1
私は日食でこの問題を抱えています。SDKビルドツールがrev 21に更新されなかったため、100以上のエラーが発生しました。ただし、今は別のエラーが発生したので...それらを確認してください。
RED_ 2014年

今日、Extras / Android Support Library(バージョン21.0.2)をアンインストールして再インストールしましたが、そのproject.propertiesがまだ問題の原因であるtarget = android-19を誤って指していることに注意してください。21でなければなりませんが、これは生成されたファイルであり、手動で編集することはできません。回避策については、承認された回答を参照してください。
JulianSymes 2014年

@ RED​​_、Androidスタジオのvalules-v21の<style name = "AppBaseTheme" parent = "android:Theme.Material.Light"> </ style>のシンボル「android:Theme.Material.Light」を解決できません
Pankaj Nimgade

@PankajNimgadeわかりません...助けが必要ですか?
RED_ 2015年

@RED_、はい私は必要性のヘルプを行う必死に、自分のコンピュータ上で、私はスタイル、親切に助け私は\値-V21にはアンドロイドで始まる素材テーマや何のために何を検出するように見えることはできません
パンカジNimgade

回答:


598

loeschgの答えは完全に正しいですが、はそれについて詳しく説明し、エラーがわずかに区別されていても、すべてのIDE(Eclipse、IntellJ、およびAndroid Studio)の解決策を提供したいと思います。


前提条件

SDK-Managerを介して最新のextrasものをダウンロードしたことを確認してくださいAndroid 5.0 SDK

SDK Managerの画像


Android Studio

build.gradleapp-module のファイルを開いてcompileSdkVersion21に変更しtargetSdkVersionます。SDK-Versionを21 に変更する必要はありませんが、常に最新のandroid Build-Versionをターゲットにする必要があるため、これをお勧めします。
最終的に、gradle-fileは次のようになります。

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

後でプロジェクトを必ず同期してください。

Android Studio Gradle Syncリマインダー


日食

使用するときはv7-appcompatEclipseで、あなたは、ライブラリプロジェクトとしてそれを使用する必要があります。* .jarを/libsフォルダーにコピーするだけでは十分ではありません。プロジェクトを適切にインポートする方法を知るために、developer.android.comのこちらのチュートリアル(クリック)をお読みください。

プロジェクトがインポートされるとすぐに/res、次のようなエラーが原因で、フォルダー内の一部のフォルダーに赤い下線が付いていることがわかります。

Eclipseのエラー

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...、変更を有効にするためにa を実行します。


IntelliJ IDEA(Gradleを使用しない)

Eclipseと同様に、だけを使用するだけでは不十分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プラットフォームを選択->適用

API 21プラットフォームを選択

次に、プロジェクトを再ビルド(ビルド->プロジェクトの再ビルド)します。


2
ターゲットをtarget = android-19からtarget = android-21に変更した後も、同じ問題が日食で直面しています。値フォルダーdudeでエラーが発生します
prabhakaran 2014年

1
日食でAppCompatを5.0に変更すると、ビルドされなくなり、.binフォルダーが空になります。
Clive Jefferies

1
すばらしい、本当に私は過去2日間苦労していましたが、ウルトトリックのAndroid-19から21への変更はうまく
いき

1
Eclipseを使用して、appcompatプロジェクト自体だけでなく、appcompatライブラリーを使用していたすべてのプロジェクトでプロジェクトターゲットを21に更新する必要がありました。
Bianca Daniciuc 2014

1
私は現在、Eclipse / Androidで言及されている以前の問題に取り組んでいます。それは本当に、信頼できない突き通せないbollockの負荷です。
AndyUK

123

これはcompileSdkVersion、build.gradleファイルで21に設定していないためと考えられます。また、おそらくtargetSdkVersion21 に変更することもできます。

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

まず、最新のSDKアップデートをダウンロードしておく必要があります。

Android Studio SDK Manager

すべての更新をダウンロード(Androidサポートライブラリ/リポジトリも更新することも忘れないでください!)、compileSdkVersionを更新したら、Gradleプロジェクトを再同期します。

編集:Eclipseまたは一般的なIntelliJユーザー向け

reVerseの回答を参照してください。彼は非常に徹底的なウォークスルーを持っています!


2
これが正解です。21にアップグレードするには、これと新しいappcompatの依存関係が必要です。playサービスのrev 12をダウンロードする必要があります。
sbaar 2014年

1
そして、必ずJDK 7を実行してください
Chad Bingham

1
まだ正しいですが、@ reVerseのソリューションを参照してください。それはより徹底的です:)
loeschg 14年

IDEもGradleも使用しませんでした... Antとメモ帳を使用する場合も同様ですか?
Valen

22

`以下の手順に従ってください:

この問題を解決するには、

1. appcompat_v7ライブラリを右クリックし、[プロパティ]を選択します。

2.次に、[Androidオプション]をクリックし、プロジェクトのビルドパスをAndroid 5.0(APIレベル21)に設定して変更を適用します。

3. appcompat_v7ライブラリの下のproject.propertiesファイルに移動します。

4.プロジェクトのターゲットを次のように設定します:target = android-21

5.今すぐクリーン+ appcompat_v7ライブラリとプロジェクトをビルドします `


1
私はあなたの方法を使用して、プロジェクトとライブラリにandroid-21ターゲットを設定し、両方をクリーンアップして完了しました。
Md Mohsin 2014

1
appcompat_v7ライブラリはどこにありますか?
SleepNot

2
appcompat_v7 libは次の場所にあります。adt-bundle-windows-x86_64-> sdk-> \ extras \-> android \->
support-

この回答と上記のloeschgの回答を組み合わせると、Eclipseでこの問題が解決されました。
Michael Todd、

12

API 21をターゲットAPIとして使用したくない場合、つまりマテリアルテーマを使用したくない場合は、API 19に属する古いリビジョンを使用する必要があります。

compile "com.android.support:appcompat-v7:19.0.+"

これは問題の解決にも役立ちます。これは、達成したいことに依存します。


仰るとおりです。すべての後、21時のターゲットSDKへの誰も計画
peacepassion

10

play-services:5.0.89でこの問題が発生しました。6.1.11にアップグレードすると問題が解決しました。


8

Android Studioでとを設定しようcompileSdkVersiontargetSdkVersionしました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.+'
}

appcompactの最新バージョンを使用していましたが、以前のバージョンにアップグレードしたいのですが、explored-arrフォルダーでこのエラーが発生します
Antwan

3

ワークスペースに別のプロジェクトを追加していて、マニフェストファイルでそのプロジェクトのアクティビティを参照しようとしていましたが、このエラーが発生しました。問題は、ライブラリを誤って参照していたことです。これは私が問題を修正した方法です:

  • プロジェクトを右クリック
  • プロパティを選択
  • 左側のメニューでAndroidをクリックします
  • 追加をクリックします
  • ライブラリプロジェクトを選択してください

jarはAndroid Dependenciesフォルダーに入り、このエラーは修正されました。


私はあなたのシーケンスを実行しました。その後、«Jarの不一致がありました。libs /のjarと、依存するappcompatおよびgoogle play servicesライブラリプロジェクトのjarが一致しなかったため(SHA-1とjarファイルの長さが一致していなかったため)、Androidコンソールで依存関係を修正します。さらに苦労して、これは成功だと思います。
Eugene Gr。フィリポフ2016

2

Android Studio(またはEclipse)でプロジェクトをクリーンアップしてください。

それはあなたの問題を解決するはずです


2
この場合、特に新しいAndroid SDKやappcompatライブラリなどをダウンロードしたばかりの場合は、プロジェクトをクリーンアップしても機能しません。他のAndroidライブラリやリソースへの不足しているリンクを見つけることなく、エラーが魔法のように自動的にクリーンアップされることはありません。ReVerseの答えは正解であり、最新のAndroid APIレベル21のダウンロードに関する問題を自分で解決する方法を知らない人にとって最も完全です。
ChuongPham 2014年

2

最新のgradleプラグインにアップグレードすると問題が解決します:

classpath 'com.android.tools.build:gradle:0.13.+'

0.14.0は実際にはそれほど前にリリースされていません
loeschg

うん、私はまだ0.12を使っていた...多分それは他の誰かが0.13または0.14にアップグレードするのを助けることができる
avianey

2

Eclipseのワークスペースに2番目のプロジェクトを作成した後、この問題が発生しました。私はそれを別のSDKバージョンで作成し、これがandroid-support-v7-appcompatライブラリを上書きしたためだと思います。

私はすべてを片付けようとしましたが、役に立ちませんでした。最終的に、project.propertiesを編集してtarget = android-21を変更し、プロジェクトをAndroid 5.0に設定するという上記の提案は、修正されました。


2

私がお勧めするのは、次のとおりです(これは、何日もエラーが発生してからうまくいきます)

-ダウンロードしたことを確認してください:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

-ADTを再ロード

-プロジェクトのセキュリティコピーを作成します。

-ADT、ワークスペース、およびインポートするプロジェクトが同じディスクに必要です(例:C:/)

  1. 次に、アプリの互換性とプロジェクトを削除します。

  2. 日食:ファイル>インポート> Androidの既存のプロジェクト>次へ>参照(ADTがあるフォルダー)/ sdk / extras / android / v7 / appcompat>インポート>完了

  3. eclipse Package Explorerで:android-support-v7-appcompat / libs / Make the two JARS:Right click> Build Path> Add to Build Path

  4. libs /フォルダーを右クリック>ビルドパス>ビルドパスを構成し、この2つのJARを確認> OK

  5. 上部の日食バーで>プロジェクト>クリーン

  6. プロジェクトをインポート>ファイル>インポート>プロジェクトを参照>完了

  7. 次に、プロジェクトファイルを右クリックし、android-support-v7-appcompat>プロパティ> Android>表示される最新のAPIを選択> OK

  8. プロジェクトファイルを右クリック>プロパティ> Android>追加> android-support-v7-appcompat

  9. 上部の日食バーで>プロジェクト>クリーン


2

コンパイル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バージョンの古いバージョンがあることを確認してください ここに画像の説明を入力してください


2

私はすべてを最新にしていて、まだこのエラーが発生しましたが、理由はわかりませんが、画像が奇妙な方法で破損していると思います。画像を置き換えた後、エラーを解消しました。別の画像で試してみる価値があるかもしれません:)


1

私の問題は、自分のプロジェクトが参照する他のライブラリーがあり、それらのライブラリーがappcompatの別のバージョンを参照していたことでした。これは私が問題を解決するためにしたことです:

(これを行う前にプロジェクトをバックアップする必要があります)

1)appcompatレイアウトフォルダーをすべて削除しました(例:/ res / layout-v11)。

2)それから生じた問題を解決しました、通常menu.xmlのエラー

3)メインプロジェクトに戻り、appcompatライブラリーを追加し、クリーンにすると、すべてが機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.