由于配置中资源“属性/模式”的值重复,因此构建失败

时间:2018-10-04 12:29:17

标签: gradle android-constraintlayout android-studio-3.2 android-studio-3.1.4 android-studio-3.3

constraintLayout 版本从1.1.2-> 2.0.0-alpha2

升级后

我收到此错误

    java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
      /Users/x/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0-rc01.aar/
d5741c4d219b7f0eeb18436ff6f46f63/res/values/values.xml:1104:5-1169:25: AAPT: error: duplicate value for resource 'attr/mode' with config ''.

      /Users/x/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0-rc01.aar/
d5741c4d219b7f0eeb18436ff6f46f63/res/values/values.xml:1104:5-1169:25: AAPT: error: resource previously defined here.

appCompat版本为v7:28.0.0-rc01

此问题在AS 3.3 canary 3&3.2 stable&3.1.4&3.0.1版本中可以重现

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果您将Android X与支持库混合使用,则错误消息看起来像您收到的错误消息,至少我发现时就是这样。

如果您使用任何Android X依赖项,则不能使用任何旧的Android支持库依赖项,否则将它们全部合并到一个apk中时,将会得到重复的资源和其他问题。

确保您使用的是所有Android X或所有的支持库。如果您要使用Android X,请确保拥有

android.useAndroidX=true
android.enableJetifier=true

在您的gradle.properties中,以便您的其他依赖项被视为Android X。

答案 1 :(得分:0)

为什么使用appcompat-v7-28.0.0-rc01而不是appcompat-v7-28.0.0

甚至androidx.appcompat:appcompat:1.0.0吗?

rc01的意思是release candidate;仅用于测试目的。