Ответ 1
Я просто изменил
xmlns:app="http://schemas.android.com/apk/res-auto"
к
xmlns:app="http://schemas.android.com/apk/lib/my_package_name"
Я видел ответ здесь
Я получаю 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
Я просто изменил
xmlns:app="http://schemas.android.com/apk/res-auto"
к
xmlns:app="http://schemas.android.com/apk/lib/my_package_name"
Я видел ответ здесь
изменить app:srcCompat="@android:drawable/ic_dialog_email"
для
android:src="@android:drawable/ic_dialog_email"
Также происходит, когда у вас устаревшие версии библиотек поддержки.
Я обновил:
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'
(это были самые новые версии в тот момент, когда я это написал)
и ошибка исчезла.
Вы также можете попробовать
android:src = "@drawable/ic_dialog_email"
вместо
app:srcCompat="@android:drawable/ic_dialog_email"
У меня была такая же ошибка, и это сработало для меня.
Добавьте этот vectorDrawables.useSupportLibrary = true
к вашему уровню приложения build.gradle
defaultConfig {
...
targetSdkVersion 23
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
}
Похоже, вы только что создали новый проект. Так что я исправил это для меня, обновляя мои инструменты поддержки сборки, а затем создавая новый проект с нуля.
Для обновления: Android Studio- > Настройки...- > Внешний вид и поведение- > Настройки системы- > Android SDK- > Android SDK Build-Tools- > Установите флажок для обновления
У меня была аналогичная проблема.
мой инструктор попробует обновить API 22 до API 25, и он работает. возможно, вы можете попробовать на этом же.
Случается, если вы начнете обновление Android Studio и отмените обновление на полпути завершите процесс обновления, и все должно вернуться к нормальной работе
Я использую srcCompat api следующим образом.
<android.support.v7.widget.AppCompatImageView
android:id="@+id/dashboard"
android:layout_width="60dp"
android:layout_height="60dp"
srcCompat="@drawable/dash">
Я не знаю причину, по которой это происходит, но вы исправитесь, просто изменив это приложение: srcCompat на android: src, и это будет работать как шарм:)
Это протестировано в Android Studio версии 2.2.3