Дублирующее значение для ресурса 'attr/font' с config "

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

Сообщение об ошибке: /Users/hyun/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.1.arr/25699caf34fef6313d6ec32013a1a117f/res/values/values.xml ошибка: повторяющееся значение для ресурса attr/font' with config". ошибка: ресурс, ранее определенный здесь

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

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

14 ответов

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

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

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

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

Что я меняю

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

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

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

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

После перехода на 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 исправил проблему.

Я обновил свои библиотеки Android-X до более новых версий, и у меня возникла ошибка этого типа в styles.xml

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

это был мой предыдущий код

<declare-styleable name="CircleProgressBar">
    <attr name="min" format="integer" />
    <attr name="max" format="integer" />
    <attr name="progress" format="integer" />
    <attr name="progressbarColor" format="color" />
    <attr name="progressBarThickness" format="dimension" />
</declare-styleable>

я изменил progress значение атрибута путем рефакторинга до progressValue как показано ниже.

<declare-styleable name="CircleProgressBar">
    <attr name="min" format="integer" />
    <attr name="max" format="integer" />
    <attr name="progressValue" format="integer" />
    <attr name="progressbarColor" format="color" />
    <attr name="progressBarThickness" format="dimension" />
</declare-styleable>

и это сработало для меня.

повторить в реализации «com.android.support.constraint:constraint-layout:2.0.4»

Я удаляю это.

У меня тоже была такая проблема...

Моя ПРОБЛЕМА: я использовал то же имя атрибута (например,editable) на буксире xml: attr_1.xml а также attr_2.xml

attr_1.xml:

<resources>
    <declare-styleable name="CustomContainerEditText">
        <attr name="android:text" format="string" />
        <attr name="editable" format="string" />
    </declare-styleable>
</resources>

attr_2.xml:

<resources>
    <declare-styleable name="CustomContainerEditText">
        <attr name="editable" format="string" />
    </declare-styleable>
</resources>

РЕШЕНИЕ: (короткий ответ) Я просто удаляю format="String" из одного из файлов атрибутов xml (например, attr_2.xml) и моя проблема исправлена.

attr_2.xml:

<resources>
    <declare-styleable name="CustomContainerEditText">
        <attr name="editable" />
    </declare-styleable>
</resources>

Я использую вспомогательную библиотеку 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"
            }
        }
    }
}

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

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

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

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

android.enableJetifier=true
android.useAndroidX=true

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

Я столкнулся с той же проблемой. В моем случае у меня только что было

      implementation 'com.android.support:appcompat-v7:28.0.0'

и я добавил

      implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

и это сработало для меня!

Это сработало для меня

      implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

В моем случае: ошибка: повторяющееся значение для ресурса attr/mode с конфигурацией ''

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

implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'

Мне пришлось переименовать свой declare-styleable, который имел имя как mode, на что-то вроде custom_mode. Затем он исправил ошибку.

Просто продолжайте уменьшать версию зависимости, упомянутой в пути. В
вашем случае это: /values.xml Таким образом, уменьшение номера версии для appcompat-v7-27.0.1 до 27.0.0 может сработать. Если это не работает, продолжайте уменьшать номер версии и каждый раз пересобирайте проект, пока он не заработает.



В моем случае textColor и text_background_color создают проблему, но после добавления формата он работает нормально до добавления формата

<declare-styleable name="OtpView">
    <attr name="android:inputType">number</attr>
    <attr name="textColor"/>
    <attr name="OtpView_android_textColor" />
    <attr name="text_background_color"/>
    <!--<attr name="text_background_color" format="color">?back_icon_color</attr>-->
    <attr name="otp" format="string" />
    <attr name="lineColor" format="reference|color" />
</declare-styleable>

после добавления формата в свойство textColor и text_beckground_color он решается

<declare-styleable name="OtpView">
    <attr name="android:inputType">number</attr>
    <attr name="textColor" format="string"/>
    <attr name="OtpView_android_textColor" />
    <attr name="text_background_color" format="string"/>
    <!--<attr name="text_background_color" format="color">?back_icon_color</attr>-->
    <attr name="otp" format="string" />
    <attr name="lineColor" format="reference|color" />
</declare-styleable>
Другие вопросы по тегам