【问题标题】:No resource identifier found for attribute 'srcCompat' in package 'learnapp.android.example.com.learnapp'在包“learnapp.android.example.com.learnapp”中找不到属性“srcCompat”的资源标识符
【发布时间】:2016-07-02 15:50:10
【问题描述】:

我收到Error:(26) No resource identifier found for attribute 'srcCompat' in package 'learnapp.android.example.com.learnapp' 当我尝试运行我的应用程序时。我今天刚开始学习 android。我添加了一个新活动并试图更改任何 xml 文件中的任何内容。

这是确切的错误:

Documents/MyProjects/LearnApp/app/src/main/res/layout/activity_display_message.xml
Error:(26) No resource identifier found for attribute 'srcCompat' in package 'learnapp.android.example.com.learnapp'

这是我的 activity_display_message.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="learnapp.android.example.com.learnapp.DisplayMessageActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_display_message" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />

</LinearLayout>

我已经阅读了类似的问题,并且看到了这行

xmlns:app="http://schemas.android.com/apk/res-auto"

app:srcCompat="@android:drawable/ic_dialog_email" />

他们的情况是错误的,而我的情况不是。

如果重要的话,这个活动的父活动是 MainActivity.java

【问题讨论】:

  • 你能尝试在你的代码中设置drawable吗fab.setImageResource(R.drawable.ic_dialog_email);

标签: android android-activity


【解决方案1】:

我只是变了

xmlns:app="http://schemas.android.com/apk/res-auto" 

xmlns:app="http://schemas.android.com/apk/lib/my_package_name"

我看到了答案here

【讨论】:

  • 不要这样做。它改变了布局行为。如果您尝试使用 ScrollingActivity,它会变得一团糟
【解决方案2】:

app:srcCompat="@android:drawable/ic_dialog_email" 更改为

android:src="@android:drawable/ic_dialog_email"

【讨论】:

  • 但真正的问题是为什么 Android Studio 使用“app:srcCompat”???我已经厌倦了不得不改变这一点。
  • 因为 app:srcCompat 是在 AppCompat 库 23.2 中添加的,所以如果你有 23.1,它就不存在了。可以用android:src,但是app:srcCompat支持矢量图,这样更好
【解决方案3】:

你也可以试试

android:src = "@drawable/ic_dialog_email"

而不是

app:srcCompat="@android:drawable/ic_dialog_email"

我遇到了同样的错误,这对我有用。

【讨论】:

  • 不好,因为我们不能在带有android:src的棒棒糖前使用矢量可绘制对象
【解决方案4】:

当您拥有过时版本的支持库时也会发生这种情况。

我更新自:

compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'

到:

compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.android.support:recyclerview-v7:24.2.1'

(这些是我写这篇文章时的最新版本)

错误消失了。

【讨论】:

  • 这最终为我解决了这个问题。谢谢!
【解决方案5】:

将此vectorDrawables.useSupportLibrary = true 添加到您的应用级 build.gradle

defaultConfig {
    ...
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    vectorDrawables.useSupportLibrary = true
}

【讨论】:

    【解决方案6】:

    看起来您刚刚创建了一个新项目。所以为我解决的问题是更新我的构建支持工具,然后从头开始创建一个新项目。

    更新:Android Studio->Preferences...->Appearance & Behavior->System Settings->Android SDK->Android SDK Build-Tools->勾选更新

    【讨论】:

      【解决方案7】:

      我遇到了类似的问题。

      我的导师尝试将 API 22 更新到 API 25,并且成功了。 也许你可以试试同样的。

      【讨论】:

        【解决方案8】:

        如果您开始更新 Android Studio 并在中途取消更新,则会发生这种情况 完成更新过程,一切都应该恢复正常

        【讨论】:

          【解决方案9】:

          我正在使用 srcCompat api,如下所示。

          <android.support.v7.widget.AppCompatImageView
                android:id="@+id/dashboard"
                android:layout_width="60dp"
                android:layout_height="60dp"
                srcCompat="@drawable/dash">
          

          More info

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-05-03
            • 2015-12-26
            • 2017-12-17
            • 1970-01-01
            相关资源
            最近更新 更多