我得到了Error:(26) No resource identifier found for attribute 'srcCompat' in package 'learnapp.android.example.com.learnapp'
当我尝试运行我的应用程序时。我刚刚开始学习安卓。我在任何xml文件中添加了一个新活动和dint更改任何内容。
这是确切的错误:
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
答案 0 :(得分:36)
我刚刚改变了
xmlns:app="http://schemas.android.com/apk/res-auto"
到
xmlns:app="http://schemas.android.com/apk/lib/my_package_name"
我看到了答案here
答案 1 :(得分:13)
更改app:srcCompat="@android:drawable/ic_dialog_email"
android:src="@android:drawable/ic_dialog_email"
答案 2 :(得分:11)
当您拥有过时的支持库版本时也会发生这种情况。
我更新了:
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'
(那是我写这篇文章的最新版本)
并且错误消失了。
答案 3 :(得分:11)
您也可以尝试
android:src = "@drawable/ic_dialog_email"
而不是
app:srcCompat="@android:drawable/ic_dialog_email"
我有同样的错误,这对我有用。
答案 4 :(得分:2)
将此vectorDrawables.useSupportLibrary = true
添加到您的应用级build.gradle
defaultConfig {
...
targetSdkVersion 23
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
}
答案 5 :(得分:0)
看起来你刚刚创建了一个新项目。所以修复它的原因是更新我的构建支持工具,然后从头开始创建一个新项目。
更新:Android Studio-&gt;偏好设置...-&gt;外观&amp;行为 - &gt;系统设置 - &gt; Android SDK-&gt; Android SDK构建工具 - &gt;选中要更新的框
答案 6 :(得分:0)
我遇到了类似的问题。
我的讲师尝试将API 22更新到API 25,并且它正常工作。 也许你可以尝试相同的。
答案 7 :(得分:0)
如果您开始更新Android Studio并中途取消更新,则会发生错误 完成更新过程,一切都应恢复正常
答案 8 :(得分:-1)
我正在使用srcCompat api,如下所示。
<android.support.v7.widget.AppCompatImageView
android:id="@+id/dashboard"
android:layout_width="60dp"
android:layout_height="60dp"
srcCompat="@drawable/dash">