2015-08-02 14 views
26

Ho importato un progetto Android eclisse in Android Studio 1.2.2 La Gradle del mio progetto:L'attributo "titleTextStyle" è già stato definito?

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

sto ottenendo

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

indicando il mio colors.xml ma il mio file xml fa nemmeno questo elemento ha questo attributo.

risposta

29

Il problema è 'com.actionbarsherlock:actionbarsherlock:[email protected]' definisce l'attributo titleTextStyle che è anche definito in un'altra libreria, quindi il conflitto aumenta.

Altre persone hanno avuto lo stesso problema con Barra azioni Sherlock dopo l'aggiunta di esso (here e here) dove appcompat-v7 già avuto un ActionBar con le stesse funzionalità (stessa titleTextStyle attribuiscono pure). Si consigliava l'uso di ActionBar da appcompat-v7 su ActionBarSherlock.

Nel tuo caso appcompat V7 non è direttamente aggiunto come una dipendenza però

come descritto nel 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' 

si stava utilizzando il più recente in modo che l'appearead conflitto. Potresti, come suggerito, utilizzare solo appcompat o stick to actionbarsherlock e passare alla versione 7.0.0 di playservices.

Guardando oltre the android support library features ho notato che vi guiderà a:

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.

che è un'altra indicazione di non usare ActionBarSherlock.

+0

Ho già risolto questo problema rimuovendo completamente la libreria actionBarSherlock. Un particolare progetto di libreria che ho utilizzato dipendeva da actionbarsherlock. Ho ottimizzato questa libreria per la compilazione senza la necessità di actionbarsherlock. Comunque quello che dici sembra la strada giusta da percorrere. Quindi assegnandoti a meno che qualcun altro abbia una risposta migliore. – Nezam

+1

Cosa succede se ho bisogno di utilizzare 2 librerie che definiscono gli attributi di viste specifiche, usando declare-styleable, ma nonostante le viste abbiano un pacchetto diverso, i nomi degli attributi sono gli stessi? Come posso gestire questo? –

+0

@androiddeveloper questo sembra un problema abbastanza ampio da consentire a molti utenti di incontrarsi meritandosi la propria domanda. Questa domanda da sola ha avuto numerosi successi negli ultimi 2 mesi. Ti suggerisco di pubblicare la tua domanda separatamente, ti risponderò quando avrò il tempo per farlo, a meno che qualcun altro non fornisca una risposta pertinente prima di quello. Saluti! –

Problemi correlati