我正在尝试从Intellij Idea 12切换到Android Studio 0.2.1 目前我的android项目是使用maven-android-plugin设置的。我使用actionbarsherlock作为apklib依赖。
当我尝试使用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工作室中构建?关于如何使用android studio的任何提示都很受欢迎:)
此致 弗兰克
答案 0 :(得分:11)
我发现了这个问题。它与android studio或actionbar sherlock无关,但与另一个错误地声明与xpp3和xmlParserApis有依赖关系的apklib依赖关系,范围为“compile”,应该“提供”。
Idea 12对此没有任何问题,但android studio / idea 13预览似乎更严格。
只需在项目结构中将范围更改为“已提供”即可解决问题。
答案 1 :(得分: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')
}
...
答案 2 :(得分:-1)
只需从xpp3 jar中删除QName.class。