已定义资源条目activity_horizo​​ntal_margin

时间:2016-03-14 13:45:09

标签: android gradle android-gradle build.gradle

在我的android项目中,我使用的库很少。关键是我正在添加一个新的,例如:

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

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

  

d:\ AndroidStudioProject \ MyProject的\ RES \值-w820dp \ dimens.xml   错误:(2)已经定义了资源条目activity_horizo​​ntal_margin。   d:\ AndroidStudioProject \ MyProject的\建立\中间体\分解-AAR \ com。示例\ example_sdk \ 3.2.7 \ RES \值-w820dp-V13 \值-w820dp-v13.xml   错误:(2,1)最初在这里定义。   错误:任务':processMyAppUniversalDebugResources'的执行失败。    com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'命令'D:\ Tools \ Android_SDK \ build-tools \ 23.0.1 \ aapt.exe''以非完成零退出值1

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

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脚本来忽略它?

1 个答案:

答案 0 :(得分:1)

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