2013-07-19 72 views
6

我試圖從Intellij Idea 12切換到Android Studio 0.2.1 目前我的android項目是使用maven-android-plugin安裝的。我使用actionbarsherlock作爲apklib依賴項。Android Studio Pre Dexing失敗

當我嘗試建立與Android Studio中的項目失敗德興前階段與

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. 

但是到XPP3唯一的依賴是從actionbarsherlock,如果你考慮項目結構你看,它有「提供」的範圍。所以在我看來,這不應該是預先排好的或者包含在apk中。

你有沒有做過類似的觀察?或者你有沒有得到一個android-maven項目與actionbarsherlock依賴在android studio中構建?關於如何得到這個工作與Android工作室任何提示讚賞:)

問候 弗蘭克

+0

如何將支持庫依賴項添加到您的項目中? – maclir

+0

使用Maven:' com.google.android 支持-V4 ' – Frank

+0

你不想使用Android工作室的gradle與構建系統? – maclir

回答

0

我有同樣的問題。

複製到ABS項目:

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

項目/ settings.gradle:

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

項目/庫/ 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 
    } 
} 

項目/模塊/ 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

我發現了這個問題。它與android studio或actionbar sherlock無關,但與另一個apklib依賴關係不正確地聲明具有依賴於xpp3和xmlParserApis的作用域「compile」,它應該被「提供」。

想法12沒有這個問題,但android studio/idea 13預覽似乎更嚴格。

只要將範圍更改爲項目結構中的「提供」即可解決問題。

+0

+1。通過將依賴項的pom.xml更改爲「提供」來解決問題。排除功能不起作用。 – mingfai

+0

如果我無法更改依賴項的pom,有什麼可以做的嗎? – Janusz

+0

我的一些庫包含在本地jar文件中。而xpp​​3 jar已經包含爲「提供」。在玩過之後,似乎需要手動刪除並再次導入爲「提供」才能使其工作。 – Robert

-1

只需從xpp3 jar中刪除QName.class即可。

+0

你爲什麼低估我的回答?這是最令人激動的事情,因爲xpp3.jar在這方面完全被破壞了。或者去bug的xpp傢伙... – anselm

相關問題