Подтвердить что ты не робот

Библиотека поддержки Android Build v26.X.X Ошибка сборки: атрибут "шрифт" уже определен

Я пытаюсь обновить версию 25.3.1 до версии 26.X.X в библиотеке поддержки, но каждый раз, когда я создаю проект с использованием более новой версии, я получаю эту ошибку:

Error:(357) Attribute "font" already defined with incompatible format.
Error:(343) Original attribute defined here.

Error:java.util.concurrent.ExecutionException: 
com.android.ide.common.process.ProcessException: Error while executing 
process /Users/johnsmith/Library/Android/sdk/build-tools/26.0.1/aapt 
with arguments {package -f --no-crunch -I ...

Я пробовал очистить и перестроить. Я также попытался сделать недействительными кеши и перезапустить Android Studio.

Приложение строит отлично с версией 25.3.1 в библиотеке поддержки. Я использую Android Studio 3.0 Beta 2 с версией 3.0.0-beta2 плагина Android Gradle.

4b9b3361

Ответ 1

Так как эта ошибка:

  • Спецификация Android O,
  • связанный с атрибутом font, и
  • ошибка, вызванная aapt,

Я предполагаю, что вы определили пользовательский атрибут с именем font в коде приложения, который каким-то образом конфликтует с android -namespaced font, введенный в Android O. Попробуйте переименовать или удалить этот настраиваемый атрибут.

Ответ 2

вам следует изменить имя атрибута "font", используемое в customView

<declare-styleable name="AATextView">
    <attr name="font" format="string"/>
</declare-styleable>

например:

<declare-styleable name="AATextView">
    <attr name="typeface" format="string"/>
</declare-styleable>

Ответ 3

Я получал ту же проблему и исправлялся следующим образом.

Это проблема, когда вы обновляете свой проект для поддержки Android "O". Вы можете исправить проблему с помощью следующего шага. 1. Проверьте, что вся библиотека поддержки должна иметь некоторую версию. 2. Установите флажок res в папку "Внешняя зависимость". вы найдете файл ресурсов зависимой зависимости, который фактически создает проблему. проверьте это изображение для справки