6

Intellij Idea 12 から Android Studio 0.2.1 に切り替えようとしています。現在、私の Android プロジェクトは maven-android-plugin でセットアップされています。apklib の依存関係として actionbarsherlock を使用しています。

Android Studio でプロジェクトをビルドしようとすると、pre-dexing フェーズで失敗します。

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 studio でビルドするための actionbarsherlock 依存関係を持つ android-maven-project を取得しましたか? これをAndroidスタジオで機能させる方法に関するヒントは大歓迎です:)

よろしくフランク

4

3 に答える 3

11

問題が見つかりました。android studio や actionbar sherlock とは何の関係もありませんが、別の apklib 依存関係が、xpp3 および xmlParserApis への依存関係を、"提供" する必要がある場所に "compile" スコープを持つと誤って宣言しています。

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 に答える