Дублируемое значение ресурса '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