【问题标题】:Gradle error: "Attribute "rippleColor" has already been defined" in android studioGradle 错误:“属性“rippleColor”已在 android studio 中定义”
【发布时间】:2015-09-19 21:38:12
【问题描述】:

所以我正在尝试材料设计支持库,当我添加依赖项时,编译,我得到了这个错误。 我查看了类似的问题并尝试了他们的解决方案,但无法解决,因此希望您能帮助我。

这是我的日志:

C:\Users\Jan\AndroidStudioProjects\SwagCalculator3\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\22.2.0\res\values\values.xml
Error:(1) Attribute "rippleColor" has already been defined

这是我的 build.gradle:

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "com.raptor.swagcalculator.swagcalculator"
    minSdkVersion 21
    targetSdkVersion 22

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:cardview-v7:22.2.0'
}

【问题讨论】:

    标签: android gradle defined


    【解决方案1】:

    我在这里找到了解决方案 (https://github.com/navasmdc/MaterialDesignLibrary/issues/289)。 MaterialDesign 库的rippleColor 属性被替换为mRippleColor 属性,编译后的库在此处fork (https://github.com/vajro/MaterialDesignLibrary)。

    添加

    repositories {
    maven { url "https://jitpack.io" }
    

    }

    替换

    compile 'com.github.navasmdc:MaterialDesign:1.5@aar'
    

    compile 'com.github.vajro:MaterialDesignLibrary:1.6'
    

    在您的 build.gradle 文件中应该可以解决问题。

    【讨论】:

    • 为什么在这个新库中 min sdk 从 10 增加到 16?
    【解决方案2】:

    我也有同样的问题,经过长时间的搜索,我发现有些库使用了相同的属性rippleColor

    例子:

    1- 谷歌播放服务

    compile 'com.google.android.gms:play-services:7.8.0'
    

    2- 设计支持库

    compile 'com.android.support:design:22.2.0'
    

    3- 材料设计

    compile 'com.github.navasmdc:MaterialDesign:1.5@aar'
    

    修复此问题

    首先要解决此问题,请将 google play service 包(整个包)替换为您需要的特定包,请查看 google site,因为在 Google 电子钱包中有名为 @ 的属性987654326@,就我而言,我只需要谷歌地图com.google.android.gms:play-services-maps:7.8.0

    第二如果您只需要使用导航抽屉,您可以将设计支持库 compile com.github.navasmdc:MaterialDesign:1.5@aar 替换为 compile 'it.neokree:MaterialNavigationDrawer:1.3.2'

    希望对你有帮助

    【讨论】:

    • 我也使用上述所有库,除了 compile 'com.android.support:design:22.2.0' 时我在 grladle 中添加了这个,显示已经定义了rippleColor,但是我在哪里可以找到这个。
    • 用特定的替换你的导入,用你真正需要的替换 google play 服务库,用它进行材质导航。neokree:MaterialNavigationDrawer:1.3.2
    • 我需要带有 recyclerview 和谷歌地图的 navigationdrawer 和 gplus 登录和圆形图像用于产品列表和滑动刷新用于向下滚动显示刷新图标 goodle admob 用于测试添加
    • 是否可以覆盖 RippleColor ?
    • 我不这么认为导致它在库中的属性,你不能改变它
    【解决方案3】:

    似乎在您正在使用的项目(您自己的应用程序 + 使用的库)中,名为 rippleColor 的属性至少被使用了两次。

    我建议检查包含颜色或任何属性的 xml-s(例如 colors.xml 或任何其他,尝试在 IDE 的整个项目中搜索它)。

    检查提到的rippleColor是否被多次使用。如果您的项目中有它,请重命名它!

    【讨论】:

    • 我到处搜索,但只在构建目录中找到它,我认为我不应该编辑那些文件?还是应该?
    【解决方案4】:

    我在使用Material Design时也遇到了这个问题,这是因为“rippleColor”与android支持设计包冲突。 如果您下载了模块并将其添加为依赖项,则可以通过以下方式解决此问题:

    1. 按 shift-cmd-R 替换路径,
    2. 要查找的文本:rippleColor
    3. 替换为:mrippleColor
    4. 选中“仅全字(可能更快)”
    5. 按“查找”按钮替换

    然后点击Build-Rebuild重新构建项目,就可以构建成功了。

    或者你可以使用这个分叉库:link,他为你做了替换工作。

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,因为我在定义了rippleColor 属性的android 应用程序中使用了MaterialDesign Library。这是显示我如何解决此问题的示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-01
        • 2013-09-15
        • 2015-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多