Дублируемое значение ресурса 'attr/font' с конфигурацией "

Я действительно знаю теперь, почему я получил это error и как я могу его решить. На самом деле я не уверен, что я сделал, прежде чем получил этот error.

Ошибка Msg: /Users/hyun/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.1.arr/25699caf34fef6313d6ec32013a1a117f/res/values/values.xml error: дублирующее значение для ресурса 'attr/font' с конфигурацией. error: ресурс, ранее определенный здесь

/Users/hyun/Desktop/Laftel-Android/app/build/intermediates/incremental/mergeDbugResources/merged.dir/values/values.xml дублирующее значение для ресурса 'attr/font' с конфигурацией. ресурс, ранее определенный здесь.

Java.util.concurrent.ExecutionException: com.android.tools.appt2.Aapt2Exception: ошибка AAPT2: проверьте подробности Выполнение не выполнено для задачи: app:: mergeDebugResources. Ошибка: java.utilconcurrentExcutionException: com.android.tools.aapt2.Aapt2Exception: ошибка AAPT2: подробнее проверьте журналы

Ответ 1

Возможно, концепция противоречит логике, которую мы ранее использовали для применения пользовательских шрифтов.

предварительно

Мы использовали приведенный ниже код для создания пользовательского атрибута для шрифта.

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

Что я меняю

В моем случае это была проблема, и я решил ее, переименовав имя attr

    <declare-styleable name="CustomFont">
        <attr name="fontName" format="string" />
    </declare-styleable>

То же самое может применяться, если вы используете какую-либо стороннюю библиотеку или пользовательский вид со свойством "шрифта"

Согласно предложению reverie_ss, пожалуйста, проверьте ваши res-> значения-> attrs.xml

Ответ 2

библиотека поддержки 26 добавила атрибут шрифта к элементам XML, таким как TextView и т.д. В моем случае я использовал библиотеку с настраиваемыми представлениями и настраиваемым атрибутом app:font, поэтому они столкнулись. После переименования атрибута библиотеки во что-то другое (textFont) все прошло хорошо. Итак, вы где-нибудь используете собственный атрибут 'font'? Вы недавно обновили Gradle для поддержки Библиотеки 26 или 27? Если вы не можете переопределить имя атрибута, попробуйте вернуться к 25

Ответ 3

После перехода на AndroidX мое сообщение об ошибке было

error: duplicate value for resource 'attr/progress' with config ''

и у меня был пользовательский атрибут, определенный для пользовательского представления следующим образом:

<declare-styleable name="ProductionProgressItemView">
    <attr name="progressTitle" format="string"/>
    <attr name="progress" format="string"/>
    <attr name="progressPercent" format="integer"/>

переименование прогресса в progressValue исправил проблему.

Ответ 4

Я использую вспомогательную библиотеку 27.1.1, и определенно targetSDKVersion равен 27. В моем случае возник конфликт с другой библиотекой. Это был сервис Google Play, который также добавляет вспомогательную библиотеку, но со старой версией, поэтому есть две библиотеки, которые создают проблему.

Добавьте это в файл build.gradle уровня проекта

task clean(type: Delete) {
delete rootProject.buildDir
}

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }
        }
    }
}

Я нашел эту ссылку здесь

Ответ 5

попробуйте compileSdkVersion 25, тогда все будет хорошо. поддержка библиотеки 26 добавила атрибут шрифта к элементам xml, таким как TextView и т.д., поэтому, если вы хотите использовать sdkversion 26, вам нужно переименовать атрибут библиотеки во что-то другое (textFont), все снова пошло хорошо

Ответ 6

Если вы переходите на androidx, попробуйте поместить приведенный ниже код в gradle.properties, если этот файл не существует в каталоге вашего проекта, создайте его и вставьте следующие строки. Это решено

Duplicate value for resource 'attr/.*' with config ''

ошибка в моем случае

android.enableJetifier=true
android.useAndroidX=true