2013-07-19 6 views
6

Sto provando a passare da Intellij Idea 12 ad Android Studio 0.2.1 Attualmente il mio progetto Android è impostato con il plugin maven-android. Io uso actionbarsherlock come dipendenza apklib.Android Studio Pre Dexing non riesce

Quando provo a costruire il progetto con Android Studio non riesce nella fase di pre-Dexing con

Error:Android Pre Dex: [xpp3-1.1.4c.jar] trouble processing "javax/xml/namespace/QName.class": 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] Ill-advised or mistaken usage of a core class (java.* or javax.*) 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] when not building a core library. 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] This is often due to inadvertently including a core library file 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] in your application's project, when using an IDE (such as 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] Eclipse). If you are sure you're not intentionally defining a 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] core class, then this is the most likely explanation of what's 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] going on. 

Tuttavia l'unica dipendenza xpp3 è da ActionBarSherlock e se si guarda alla struttura del progetto si vede che ha scope "fornito". Quindi, a mio parere, questo non dovrebbe essere pre-dexato o incluso nell'apk.

Avete fatto osservazioni simili? O hai avuto un progetto Android-Maven con dipendenza da actionbarsherlock da costruire in Android Studio? Eventuali suggerimenti su come ottenere questo lavoro con Android Studio sono apprezzate :)

saluti Frank

+0

Come si aggiunge la dipendenza delle librerie di supporto al progetto? – maclir

+0

Uso Maven: ' com.google.android supporto-V4 ' – Frank

+0

non si desidera utilizzare studi di Android con il sistema di compilazione Gradle? – maclir

risposta

0

Ho avuto lo stesso problema. Tale struttura ha funzionato per me, alla fine:

Copia ABS in progetto:

Project 
├── build.gradle 
├── Module 
│   ├── build.gradle 
│   ├── libs 
│   └── src 
├── libraries 
│   └── ABS 
│    ├── build.gradle 
│    ├── libraries 
│    ├── libs 
│    └── src 
└── settings.gradle 

progetto/settings.gradle:

include ':Module', ':libraries:ABS' 

progetto/librerie/ABS/build.gradle:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android-library' 

dependencies { 
    compile "com.android.support:support-v4:13.0.0" 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 17 
    } 
} 

progetto/modulo/build.gradle:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile "com.android.support:support-v4:13.0.0" 
    compile project(':libraries:ABS') 
} 
... 
11

Ho trovato il problema. Non ha nulla a che fare con Android Studio o con actionbar sherlock ma con un'altra dipendenza apklib che ha dichiarato in modo errato di avere dipendenze per xpp3 e xmlParserApis con scope "compile" dove dovrebbe essere "fornito".

Idea 12 non ha avuto problemi con questo, ma l'anteprima di android studio/idea 13 sembra essere più severa.

La semplice modifica dell'ambito a "fornito" nella struttura del progetto risolve il problema.

+0

+1. Risolto il problema cambiando il pom.xml di una dipendenza in "fornito". Le esclusioni non funzionano. – mingfai

+0

C'è qualcosa che posso fare se non riesco a cambiare il pom della dipendenza? – Janusz

+0

Alcune delle mie librerie sono incluse dai file jar locali. E il vaso xpp3 già incluso come "fornito". Dopo aver giocato, sembra che debba essere rimosso e reimportato manualmente come "fornito" per farlo funzionare. – Robert

-1

Basta rimuovere QName.class dal barattolo di xpp3.

+0

Perché stai facendo downvoting alla mia risposta? È la cosa più logica da fare, dal momento che xpp3.jar è totalmente rotto in questo senso. In alternativa vai bug ai ragazzi xpp ... – anselm