2013-07-19 37 views
6

Próbuję przejść z Intellij Idea 12 na Android Studio 0.2.1 Obecnie mój projekt na Androida jest skonfigurowany z wtyczką maven-android. Używam pasków akcji jako zależności od apklib.Android Studio Pre Dexing kończy się niepowodzeniem

Kiedy próbuję zbudować projekt z Androidem Studio nie jest on w fazie pre-Dexing z

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. 

Jednak tylko zależność do xpp3 wynosi od ActionBarSherlock i jeśli spojrzeć na strukturę projektu widać, że ma zakres "pod warunkiem". Moim zdaniem nie powinno to być uprzednio zdekonspirowane ani włączone do pakietu apk.

Czy zrobiłeś podobne obserwacje? A może dostałeś android-maven-project z zależnością actionbarsherlock do zbudowania w studiu android? Wszelkie wskazówki, w jaki sposób uzyskać tej pracy z Android studio są doceniane :)

Pozdrowienia Franka

+0

W jaki sposób dodajesz zależność bibliotek pomocniczych do projektu? – maclir

+0

Korzystanie Maven: ' com.google.android wsparcie-V4 ' – Frank

+0

Nie chcesz użyć android studio z Gradle systemu budować? – maclir

Odpowiedz

0

miałem ten sam problem. Struktura ta pracował dla mnie w końcu:

Kopiowanie ABS język projektu:

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

projektu/settings.gradle:

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

Projekt/Biblioteka/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 
    } 
} 

Project/Module/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

Znalazłem problem. Nie ma to nic wspólnego ze studiem android ani z sherlockiem actionbar, ale z inną zależnością apklib, która niepoprawnie zadeklarowała zależności od xpp3 i xmlParserApis z "kompilacją" zakresu, w którym powinna być "dostarczona".

Idea 12 nie miała z tym żadnych problemów, ale podgląd androida/pomysłu 13 wydaje się bardziej rygorystyczny.

Po prostu zmiana zakresu na "dostarczony" w strukturze projektu rozwiązuje problem.

+0

+1. Naprawiono problem przez zmianę pom.xml zależności na "dostarczony". Wyłączenia nie działają. – mingfai

+0

Czy jest coś, co mogę zrobić, jeśli nie mogę zmienić pom zależności? – Janusz

+0

Niektóre z moich bibliotek są zawarte w lokalnych plikach jar. A słoik xpp3 jest już dołączony jako "dostarczony". Po obejrzeniu wydaje się, że należy ręcznie usunąć i ponownie zaimportować jako "dostarczone", aby działało. – Robert

-1

Wystarczy usunąć QName.class ze słoika xpp3.

+0

Dlaczego ignorujesz moją odpowiedź? To najcudowniejsza rzecz, odkąd xpp3.jar jest całkowicie złamany pod tym względem. Alternatywnie idź do facetów z Xpp ... – anselm

Powiązane problemy