我现在真的知道为什么我得到这个error
,我该如何解决它。
实际上我不确定在我得到error
之前我做了什么。
错误消息: /Users/hyun/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.1.arr/25699caf34fef6313d6ec32013a1a117f/res/values/values.xml 错误:资源'attr / font'与config的重复值“。 错误:此前定义的资源
/Users/hyun/Desktop/Laftel-Android/app/build/intermediates/incremental/mergeDbugResources/merged.dir/values/values.xml 资源'attr / font'与config的重复值“。 以前在此定义的资源。
Java.util.concurrent.ExecutionException:com.android.tools.appt2.Aapt2Exception:AAPT2错误:检查详细信息任务':app :: mergeDebugResources'的执行失败。 错误:java.utilconcurrentExcutionException:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息
答案 0 :(得分:33)
支持库26将字体属性添加到像TextView等xml元素中。在我的例子中,我使用的是具有自定义视图的库和自定义属性app:font,因此它们发生了冲突。将库属性重命名为其他内容(textFont)后,一切都恢复正常。那么,你在某处使用自定义'font'属性吗?您最近是否更新了gradle以支持图书馆26或27?如果您无法覆盖属性名称,请尝试回滚到25
答案 1 :(得分:33)
与我们之前使用的逻辑冲突的概念可能会应用自定义字体。
<强>以前强>
我们使用以下代码为字体创建自定义属性。
<declare-styleable name="CustomFont">
<attr name="font" format="string" />
</declare-styleable>
我改变了什么
在我的情况下,这是问题,我通过重命名attr名称
解决了这个问题 <declare-styleable name="CustomFont">
<attr name="fontName" format="string" />
</declare-styleable>
如果您使用任何第三方库或自定义视图&#34; font&#34; 属性
,则同样的事情可能适用根据reverie_ss的建议,请检查 res-&gt;值 - &gt; attrs.xml
答案 2 :(得分:11)
迁移到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可以解决此问题。
答案 3 :(得分:2)
我将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>
对我有用。
答案 4 :(得分:1)
我正在使用支持库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"
}
}
}
}
我在这里link
答案 5 :(得分:1)
尝试compileSdkVersion 25,然后一切正常。 支持库26在XML元素(如TextView等)中添加了font属性,因此,如果要使用sdkversion 26,则需要将库属性重命名为其他名称(textFont),一切都恢复正常
答案 6 :(得分:0)
在我的情况下:错误:配置“”的资源“ attr / mode”的重复值
它与以下库直接相关
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
我必须将名称为 mode 的可声明样式的重命名为诸如 custom_mode 之类的名称。然后修复了错误。
答案 7 :(得分:0)
我也有这个问题...
我的问题:我在两个xml中使用了相同的属性名称(例如editable
):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>
解决方案:
(简短答案)我只是从一个xml属性文件(如format="String"
)中删除 attr_2.xml
,并且解决了我的问题。
attr_2.xml:
<resources>
<declare-styleable name="CustomContainerEditText">
<attr name="editable" />
</declare-styleable>
</resources>
答案 8 :(得分:0)
在我的情况下,textColor和text_background_color造成了问题,但是在添加了格式之后,效果很好 在添加格式之前
.babelrc
在将格式添加到textColor和text_beckground_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>
答案 9 :(得分:0)
只需不断减少路径中提到的依赖项的版本
在你的情况下:/Users/hyun/.gradle/caches/transforms-1/files-1.1/appcompat- v7-27.0.1.arr/25699caf34fef6313d6ec32013a1a117f/res/values/values.xml
所以减少appcompat-v7-27.0.1的版本号< /strong> 到 27.0.0 可能会起作用。
如果不行就继续减少版本号,每次都重新构建项目,直到成功。
答案 10 :(得分: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'
它对我有用!
答案 11 :(得分:0)
重复 实现 'com.android.support.constraint:constraint-layout:2.0.4'
我删除了它。
答案 12 :(得分:-1)
如果要迁移到androidx,请尝试将以下代码放入gradle.properties中,如果项目目录中不存在此文件,则创建一个并放入以下行。解决了
Duplicate value for resource 'attr/.*' with config ''
我的情况下的错误
android.enableJetifier=true
android.useAndroidX=true