Gradle error: "Атрибут" rippleColor "уже определен" в студии Android

Итак, я попробовал библиотеку поддержки материального дизайна, и когда я добавил зависимость, скомпилировал и получил эту ошибку. Я посмотрел на подобные проблемы и попытался их решения, но он не будет исправлен, поэтому я надеюсь, что вы можете мне помочь.

Здесь мой logcat:

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'
}

Ответы

Ответ 1

У меня такая же проблема, после длительного поиска я обнаружил, что некоторые библиотеки используют один и тот же атрибут rippleColor

Пример:

1- Сервис Google Play

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

2- Библиотека поддержки дизайна

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

3- MaterialDesign

compile 'com.github.navasmdc:MaterialDesign:[email protected]'

Исправить эту проблему

Сначала, чтобы устранить эту проблему, замените пакет google play service (весь пакет) с конкретным, который вам нужен, просмотрите google сайт, так как в Google Кошельке есть атрибут rippleColor, в моем случае все, что мне нужно, Google Maps com.google.android.gms:play-services-maps:7.8.0

Второй вы можете заменить библиотеку поддержки дизайна compile com.github.navasmdc:MaterialDesign:[email protected] на compile 'it.neokree:MaterialNavigationDrawer:1.3.2', если вам нужно использовать только ящик навигации

Я надеюсь, что эта помощь

Ответ 2

Я нашел решение здесь (https://github.com/navasmdc/MaterialDesignLibrary/issues/289). Библиотека MaterialDesign rippleColor attritube заменяется атрибутом mRippleColor, и здесь скомпилирована библиотека (https://github.com/vajro/MaterialDesignLibrary).

Добавление

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

}

и заменяя

compile 'com.github.navasmdc:MaterialDesign:[email protected]'

с

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

в файле build.gradle должен решить проблему.

Ответ 3

Кажется, что в проектах, которые вы используете (ваше собственное приложение + используемые библиотеки), атрибут с именем rippleColor используется как минимум два раза.

Я бы посоветовал проверить ваши цвета xml или любые атрибуты (например, colors.xml или любой другой, попробуйте найти его во всем проекте в вашей среде IDE).

Проверьте, используется ли упомянутый rippleColor несколько раз. Если у вас есть это в своем проекте, переименуйте его!

Ответ 4

Я также встретил эту проблему при использовании Material Design, потому что "rippleColor" конфликтует с пакетом дизайна поддержки Android. Если вы загрузили модуль и добавили его как зависимость, вы можете решить эту проблему следующим образом:

  • Нажмите shift-cmd-R для замены в пути,
  • Текст для поиска: rippleColor
  • Заменить на: mrippleColor
  • Проверить "Только целые слова (может быть быстрее)"
  • нажмите кнопку "Найти", чтобы заменить

затем нажмите Build-Rebuild, чтобы перестроить проект, и он может успешно сработать.

введите описание изображения здесь

Или вы можете просто использовать эту разветвленную библиотеку: ссылка, он сделал это для замены задания для вас.

Ответ 5

У меня такая же проблема, потому что я использую MaterialDesign Library в моем приложении для Android, где определяется атрибут rippleColor. Вот пример, который показывает, как я решил эту проблему.

введите описание изображения здесь