Android Studio Pre Dexing失败了

时间:2013-07-19 07:56:11

标签: android actionbarsherlock android-studio

我正在尝试从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的任何提示都很受欢迎:)

此致 弗兰克

3 个答案:

答案 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。