【问题标题】:Resource entry activity_horizontal_margin is already defined资源条目 activity_horizo​​ntal_margin 已定义
【发布时间】:2016-03-14 13:45:09
【问题描述】:

在我的 android 项目中,我使用了几个库。关键是当我添加一个新的时,例如:

compile(group: 'com.example', name: 'example_sdk', version: '+', ext: 'aar') {
    transitive = true;
}

在尝试构建项目时,我从 gradle 得到下一个输出错误:

D:\AndroidStudioProject\MyProject\res\values-w820dp\dimens.xml 错误:(2) 资源条目 activity_horizo​​ntal_margin 已定义。 D:\AndroidStudioProject\MyProject\build\intermediates\exploded-aar\com.example\example_sdk\3.2.7\res\values-w820dp-v13\values-w820dp-v13.xml 错误:(2, 1) 最初在这里定义。 错误:任务“:processMyAppUniversalDebugResources”执行失败。 com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\Tools\Android_SDK\build-tools\23.0.1\aapt.exe'' 完成非零退出值 1

我的猜测是,在某些库中,我们有默认定义的值-w820d/dimen.xml,它们是冲突的。但是问题是如何合并它们,因为key是一样的。

values-w820d/dimen.xml content :
<resources>
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
     (such as screen margins) for screens with more than 820dp of available width. This
     would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen name="activity_horizontal_margin">64dp</dimen>

当我将 activity_horizontal_margin 重命名为 activity_horizontal_margin_default - 我的项目解决了冲突,但与其他库出现冲突。 也许我可以添加一些 gradle-override 属性或修改 gradle 脚本以忽略这一点?

【问题讨论】:

    标签: android gradle android-gradle-plugin build.gradle


    【解决方案1】:

    当我问这个问题时,我已经做了一个解决方法。我有两个冲突的库,默认定义 activity_horizontal_margin 值 insidevalues-w820d/dimen.xml 。因此,由于其中一个库是本地的 .aar - 我将其解压缩并删除了冲突的文件,然后将其压缩回来,问题就解决了。这种方法不是那么优雅 - 但它对我有用。我一直在等待更好的解决方案,但它没有来。所以这种混乱应该由图书馆开发人员处理。这是 Xavier Ducrohet 的一个有用的答案: https://stackoverflow.com/a/16351116/3874721

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多