2015-08-02 5 views
26

Я импортировал затмение андроида проект в студии андроида 1.2.2 Gradle моего проекта:Атрибут "titleTextStyle" уже определен?

dependencies { 
    compile project(':unifiedPreferenceLib') 
    compile project(':viewPagerIndicatorLib') 
    compile project(':slidingUpFourSquare') 
    compile project(':stylishDialogLib') 
    compile project(':swipeListViewLib') 
    compile project(':library') 
    compile project(':textDrawLib') 
    compile project(':cardview') 
    compile project(':editTextFormLibrary') 
    compile 'com.android.support:support-v4:22.2.0' 
    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' 
    compile 'com.google.android.gms:play-services:+' 
    compile files('libs/CWAC-LocationPoller.jar') 
    compile files('libs/Parse-1.8.0.jar') 
    compile files('libs/ParseCrashReporting-1.8.0.jar') 
    compile files('libs/android-support-v13.jar') 
    compile files('libs/blurnavdrawerlib.jar') 
    compile files('libs/bolts-android-1.1.4.jar') 
    compile files('libs/google-http-client-1.15.0-rc.jar') 
    compile files('libs/google-http-client-android-1.15.0-rc.jar') 
    compile files('libs/google-http-client-jackson2-1.15.0-rc.jar') 
    compile files('libs/loremipsum-1.0.jar') 
    compile files('libs/splunk-mint-4.0.8.jar') 
    compile files('libs/textdrawlib.jar') 
} 

я получаю

Error:(1) Attribute "titleTextStyle" has already been defined

указывая на мой colors.xml но мой файл XML делает даже не иметь этот элемент с таким атрибутом.

ответ

29

Задача 'com.actionbarsherlock:actionbarsherlock:[email protected]' определяет атрибут titleTextStyle, который также определен в другой библиотеке, таким образом конфликт поднимается.

Другие люди имели такую ​​же проблему с Action Bar Sherlock после добавления (here и here), где AppCompat-v7 уже был ActionBar с той же функциональностью (тот же titleTextStyle атрибут, а). Рекомендуется использовать ActionBar из appcompat-v7 над ActionBarSherlock.

В вашем случае AppCompat v7 не добавляется непосредственно в зависимости однако

Как описано в this answer

The last version of Google Play Services now uses appcompat-v7, so u can't use it with actionbarsherlock. You have to use only appcompat-v7 or the previous version of play services:

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

Вы использовали последний так что appearead конфликта. Вы могли, как и предполагалось, использовать только appcompat или придерживаться actionbarsherlock и переключиться на playervices версии 7.0.0.

Глядя на the android support library features я заметил, что они вас, чтобы:

In general, we recommend including the v4 support and v7 appcompat libraries, because they support a wide range of Android versions and provide APIs for recommended user interface patterns.

, который является еще одним свидетельством, чтобы не использовать ActionBarSherlock.

+0

Я уже решил эту проблему, полностью удалив библиотеку actionBarSherlock. Конкретный проект библиотеки, который я использовал, зависит от actionbarsherlock. Я настраивал эту библиотеку для компиляции без необходимости actionbarsherlock. Во всяком случае, то, что вы говорите, кажется правильным путем. Таким образом, награждение вас, если у кого-то еще есть лучший ответ. – Nezam

+1

Что делать, если мне нужно использовать 2 библиотеки, которые определяют атрибуты определенных представлений, используя declare-styleable, но хотя представления имеют другой пакет, имена атрибутов одинаковы? Как я могу справиться с этим? –

+0

@androiddeveloper это кажется довольно широкой проблемой для многих пользователей, чтобы встретиться, тем самым заслуживая его собственный вопрос. Только за этот вопрос было много хитов за последние 2 месяца. Я предлагаю вам отдельно отправить свой вопрос, я отвечу, когда найду время, если только кто-то еще не предоставит соответствующий ответ. Ура! –

Смежные вопросы