0

在我从 1.1.2 -> 2.0.0-alpha2升级了constraintLayout版本之后

我收到此错误

    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 版本上重现

我怎样才能弄清楚这个问题?

4

2 回答 2

1

如果您将 Android X 与支持库混合使用,则错误消息看起来就像您可以得到的那种,至少当我找到它时是这样的。

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

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

android.useAndroidX=true
android.enableJetifier=true

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

于 2018-10-26T00:57:18.293 回答
0

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

甚至androidx.appcompat:appcompat:1.0.0

rc01手段release candidate;仅用于测试目的。

于 2018-10-26T01:15:29.707 回答