6

我正在尝试从 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 中。

你有过类似的观察吗?或者您是否获得了一个带有 actionbarsherlock 依赖项的 android-maven-project 以在 android studio 中构建?任何有关如何使用 android studio 的提示都表示赞赏:)

问候弗兰克

4

3 回答 3

11

我发现了问题。它与 android studio 或 actionbar sherlock 无关,但与另一个 apklib 依赖项无关,该依赖项错误地声明为对 xpp3 和 xmlParserApis 具有依赖关系,范围为“编译”,应该“提供”。

Idea 12 对此没有任何问题,但 android studio/idea 13 预览版似乎更严格。

只需在项目结构中将范围更改为“提供”即可解决问题。

于 2013-07-24T12:08:58.187 回答
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')
}
...
于 2013-07-19T09:04:09.687 回答
-1

只需从 xpp3 jar 中删除 QName.class。

于 2014-02-26T11:34:43.703 回答