web-dev-qa-db-ja.com

Androidシンボル '?attr / selectableItemBackground'を解決できません

<Android.support.v7.widget.CardView
    Android:id="@+id/card_view"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_marginLeft="@dimen/card_outer_padding"
    Android:layout_marginTop="@dimen/card_outer_padding"
    Android:layout_marginRight="@dimen/card_outer_padding"
    Android:layout_marginBottom='@{model.cardBottomMargin}'
    Android:foreground="?attr/selectableItemBackground"
    Android:onClick="@{model::onCardClick}"
    app:cardElevation="2dp"
    app:cardCornerRadius="2dp"
    app:cardUseCompatPadding="true">
</Android.support.v7.widget.CardView>

このエラーメッセージが表示されました

シンボル?attr/selectableItemBackgroundを解決できませんAndroid XMLファイル内のリソース参照を検証します。

<TextView
    Android:id="@+id/country_name"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_marginRight="40dp"
    Android:text="@{model.name}"
    style="@style/TextAppearance.AppCompat.Headline"
    tools:text="Country"/>

また、上記についても同様のエラーが発生しました

シンボル '@ style/TextAppearance.AppCompat.Headline'を解決できません
Android XMLファイル内のリソース参照を検証します。

どんなポインターでも素晴らしいでしょう!ありがとうございました!これに関連しているようです thread しかし、解決策は提供されていません:

54
Jun711

これはIDEおよびAndroid Gradleプラグインとの通信の問題だと思います。いずれにせよ、信頼できるresolveに見つかった唯一の方法は、問題のあるライブラリを削除する.idea/libraries/フォルダーにあります。

したがって、あなたにとっては、リントチェックは?attr/selectableItemBackgroundを認識しないためです。

  1. Gradle__com_Android_support_xxx.xmlファイルを見つけます
  2. それらのファイルを削除する
  3. SYNC IDEとファイルシステム
  4. Gradleファイルを使用したSYNCプロジェクト
  5. プロジェクトを再構築する

ツールバーの上部にある[ファイル]をクリックして[ファイルシステムと同期]を選択し、その後[プロジェクトをgradleファイルと同期]を選択して同期できます。

他の提案された解決策を試しました-私のモジュールbuild.gradleファイルにappcompat-v7依存関係があり、プロジェクトbuild.gradle依存関係の最初の行としてgoogle()リポジトリがありました。 N。

これらのソリューションも役に立たなかった...

  • キャッシュの無効化/再起動は機能しませんでした。
  • プロジェクトのクリーニング/再構築。
143
wooldridgetm

バージョンLollipop以降の場合、これを使用します。

Android:foreground="?android:attr/selectableItemBackground"

Pre-Lollipopの場合、これを使用します。

Android:foreground="?attr/selectableItemBackground"
44
V.Y.

2つのオプション:

オプション1

考えられるもう1つの理由は、GoogleのMavenリポジトリがビルドスクリプト用に設定されていないことです。

プロジェクトのメインbuild.gradleを開き、次の行を追加します。

buildscript {
    repositories {
        google()  <-- this
        // Be also sure that google() is before jcenter()
    }
}

これがないと、Android St​​udio Gradleプラグイン3.0+をダウンロードできない場合があります。 jCenterではなく、Googleのmavenリポジトリで配布されます。

オプション2

プロジェクトのルートでこのコマンドを実行し、プロジェクトを再同期します

Linux:

rm .idea/libraries/Gradle__com_Android_support_*.xml

Windows:

del .idea\libraries\Gradle__com_Android_support_*.xml

9
HerberthObregon

Kotlinを更新した後、同じエラーに直面しました。 「キャッシュの無効化/再起動」で解決


UPDATE今日、この解決策は役に立たなかった。しかし、この質問の解決策はそうでした: Android Studio 3.1はシンボルを解決できません(テーマ、ウィジェット、属性など)

4
Zakir

両方のリソースはAndroidサポートライブラリで定義されており、これらのシンボルは解決できないため、サポートの依存関係を定義していないようです。

dependencies {
    compile "com.Android.support:appcompat-v7:$androidSupportVersion"
}
3
tynn

これは私に解決したものです:

  1. Android St​​udioを閉じます
  2. ルートプロジェクトディレクトリの。ideaディレクトリを削除します

enter image description here

  1. プロジェクトの再インポート

enter image description here

0
DragonT

私の場合、mavenbuild.gradle Project in buildscripts.repositories AND allprojects.repositoriesに追加してください。次のようになります。

google()
maven { url 'https://maven.google.com' }
jcenter()
0
Serjant.arbuz

私は解決しました、

  • プロジェクトエクスプローラーで.ideaフォルダーを削除します。
  • キャッシュの無効化/再起動
  • プロジェクトGradleを更新
0
Nazeer Ahamed

Gradleバージョンを4.10.1に更新し、修正し、再インポートして修復しました。以前は、.ideaの下にライブラリフォルダーはありませんでした。

0
ozge s