android - 资源条目 activity_horizo​​ntal_margin 已定义

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

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

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

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

D:\AndroidStudioProject\MyProject\res\values-w820dp\dimens.xml Error:(2) Resource entry activity_horizontal_margin is already defined. D:\AndroidStudioProject\MyProject\build\intermediates\exploded-aar\com.example\example_sdk\3.2.7\res\values-w820dp-v13\values-w820dp-v13.xml Error:(2, 1) Originally defined here. Error:Execution failed for task ':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'' finished with non-zero exit value 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_horizo​​ntal_margin 重命名为 activity_horizo​​ntal_margin_default - 我的项目的冲突已解决,但与其他库出现冲突。 也许我可以添加一些 gradle-override 属性或修改 gradle 脚本以忽略它?

最佳答案

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

关于android - 资源条目 activity_horizo​​ntal_margin 已定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989228/

相关文章:

java - 到根文件夹的最快/最短途径?

android - 如何在 Android 的窄 TextView 中将文本垂直居中?

dynamic - 如何在gradle插件中动态创建任务?

java - 应用程序在调用 App onCreate() 之前遇到 ANR

android - Ionic cordova构建android失败: Exception in thread "main" java. lang.NullPointerException

android - 在 Eclipse 中将 Activity 添加到 Android 项目的最佳方法?

ios - 无法导入 robovm 绑定(bind)

java - spring.jpa.hibernate.ddl-auto = update mariadb无法自动创建数据库索引或外键或列

android - 如何在gradle中添加项目级别的依赖项

android - 无法解析从本地源模块构建的本地 AAR