Приложение для Android: ресурс не найден при сборке с более старым API

#android #android-studio #android-layout #android-6.0-marshmallow

#Android #android-studio #android-макет #android-6.0-marshmallow

Вопрос:

Я получаю следующую ошибку при сборке моего приложения, ориентированного на API 23

 AAPT: error: resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found
error: resource android:style/TextAppearance.Material.Widget.Button.Colored not found.
  

и список ошибок, подобных :

 /app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:3217: error: resource android:attr/textFontWeight not found.
  

Приложение построено на уровне API 29, но мне нужно, чтобы оно работало именно на API 23, поэтому изменение версии API не является вариантом.
есть ли какой-нибудь способ, которым я мог бы использовать старый макет? приложение вообще не должно быть красивым, ему просто нужно работать.

редактировать: я добавил следующую строку: implementation 'com.google.android.material:material:1.2.1' to build.grade (:app) в надежде, что библиотека предоставит ресурсы, но это не сработало

но, возможно, я добавил его неправильно

Ответ №1:

android:style/TextAppearance.Material.Widget.Button.Borderless.Colored был добавлен в API 24, поэтому при сборке для устройств с 23 вы получаете эту ошибку. решением будет реализация MaterialComponents библиотеки, которая позволит вам использовать более новые стили / виджеты на старых устройствах. найдите View , что вызывает вашу проблему, и замените его вышеуказанной библиотекой или установите стиль сопоставления

Комментарии:

1. спасибо, я попробовал, и это что-то изменило. Я отредактировал сообщение

2. вы импортировали его правильно, но это не даст вам точно такое же название темы — это будет конфликт имен на более новых устройствах. все встроенные атрибуты начинаются с android: префикса, а атрибуты из библиотек (или локального пользовательского интерфейса) не будут иметь этого префикса. вы можете попытаться удалить android: сохранение rest (запуск style/TextAppearance... ), но я сомневаюсь, что это сработает, вам нужно прочитать какой-нибудь документ и поискать эквивалент с измененным наименованием, например .Material. , part может измениться на .MaterialCompat. (и использовать его android: также без префикса)

3. это очень полезная информация, спасибо, я постараюсь проверить наличие ресурсов, отличных от Android: