web-dev-qa-db-ja.com

Android St​​udio:Gradle-ビルドが失敗しました-タスク ':dexDebug'の実行に失敗しました

エラー:

Gradle: Execution failed for task ':vertretungsplan:dexDebug'.
> Failed to run command:
    P:\Android-Studio\sdk\build-tools\18.0.1\dx.bat --dex --output P:\Projekte\VertretungsplanProject\vertretungsplan\build\libs\vertretungsplan-debug.dex P:\Projekte\VertretungsplanProject\vertretungsplan\build\classes\debug P:\Projekte\VertretungsplanProject\vertretungsplan\build\dependency-cache\debug P:\Android-Studio\sdk\extras\Android\m2repository\com\Android\support\support-v4\18.0.0\support-v4-18.0.0.jar P:\Projekte\VertretungsplanProject\vertretungsplan\libs\commons-io-2.4.jar P:\Projekte\VertretungsplanProject\vertretungsplan\build\exploded-bundles\VertretungsplanProjectLibrariesActionbarsherlockUnspecified.aar\classes.jar
Error Code:
    2
Output:
    trouble processing:
    bad class file magic (cafebabe) or version (0033.0000)
    ...while parsing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class
    ...while processing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class
    trouble processing:
    bad class file magic (cafebabe) or version (0033.0000)
    ...while parsing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class
    ...while processing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class
    trouble processing:
    bad class file magic (cafebabe) or version (0033.0000)
    ...while parsing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class
    ...while processing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class
    3 warnings
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.Android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
        at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:592)
        at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:550)
        at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:531)
        at com.Android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.Java:168)
        at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:186)
        at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:300)
        at com.Android.dx.command.dexer.Main.run(Main.Java:232)
        at com.Android.dx.command.dexer.Main.main(Main.Java:174)
        at com.Android.dx.command.Main.main(Main.Java:91)

プロジェクト構造:

enter image description here

build.gradle(actionbarsherlock)

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'Android-library'

dependencies {
    compile 'com.Android.support:support-v4:18.0.0'
}

Android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 11
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}

build.gradle(vertretungsplan)

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'Android'

dependencies {
    compile files('libs/commons-io-2.4.jar')
    compile project(':libraries:actionbarsherlock')
}

Android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 11
    }
}

settings.gradle

include ':vertretungsplan', ':libraries:actionbarsherlock'

このエラーを修正するにはどうすればよいですか?

82
maysi

正しい答えは、jarファイルの一部がコンパイルされないことです。プロジェクトのbuild.gradleファイルに移動し、依存関係を確認する必要があります。

Jarファイルをインポートするだけの場合は、それらを削除して、一度に1つずつ追加してみてください。これは、エラーの原因の1つを判別するのに役立ちます。

私の場合、私はそれをやっただけで、最後のものをインポートしていたときに、アプリがコンパイルされました。本当の問題は、一度にインポートしすぎていたことだと思います。しかし、今ではすべてが機能します。

89
Friis1978

注目すべき変更がなかった後、私は突然同じ問題に直面しました。

app/buildディレクトリを削除して解決し、gradleにプロジェクト全体を新しくビルドさせました。

68
ironmouse

同じJARが再度インポートされているかどうかを確認する必要があります。私の場合、別のjarにインポートされていたjar内のクラスがありました。したがって、プロジェクト全体にlib /クラスファイルが2回含まれているかどうかを確認してください。

16
user2899493

私も同じ問題を抱えていました。私の場合、問題は再起動後に始まりました。アプリを閉じ、Android St​​udio(私の場合はV1.1.0)を閉じ、最後に通常のシャットダウンを行いました。その後、1つのJavaファイルを変更してRadioGroupオブジェクトを追加すると、問題が発生しました。

問題の根本的な原因はGradle実行プロセスで生成されたため、Gradle構成ファイルの「1」を「1」に変更するだけで問題を解決しました。以前は、バージョン '1.0.0'を使用していたので、写真に記載されているように '1.1.0'に変更しました。

Gradle構成の場所が変更されました Location of the Gradle configuration a changed

適切なバージョンを取得した場所(ファイル->設定-> Gradle->実験的 Location where I took the right version from (File -> Settings -> Gradle -> Experimental

4
RunningWheels

Java JRE 1.8を使用してEclipseでutilsライブラリjarをコンパイルし、Android St​​udio 1.1.0の/ libs /で使用しようとすると、同じ種類のエラーが発生しました。

JDK1.8.0を使用するようにAndroid St​​udioを設定しました。

EclipseをJRE 1.7で動作するように切り替えたところ、エラーが修正されました。 Eclipse:ウィンドウ->設定-> Javaタブ->コンパイラ->コンプライアンスレベル1.7ほとんどの場合、JREシステムライブラリをjdk1.7.x_xに切り替えるように求められます。

エクスポートするときは、「圧縮jar」のチェックを外す必要があります。効果があるかどうかはテストしていません。私はそれが関連していたとは思わない。

4
RW4

問題はExecution failed for task ':dexDebug'についてではありません

赤で表示されたエラーの上を見ると、これが表示されます

enter image description here

この問題を永続的に解決するには、これらの行をbuild.gradleファイルに追加するだけです

Android {
    dexOptions {
        jumboMode = true
    }
}

詳細については、次の質問を確認してください。 here

4
Sabri Meviş

Android STUDIOユーザーこれを試してください:-

Gradleファイルの依存関係に次を追加する必要があります。

compile 'com.Android.support:multidex:1.0.0'

そして、以下の行(multidexサポートアプリケーション)をマニフェストのapplicationタグに追加します:

Android:name="Android.support.multidex.MultiDexApplication"
3
kumar kundan

AndroidManifestファイルのマニフェストノードにパッケージ名が含まれていることを確認してください。パッケージ名を設定すると、この問題は修正されました。

3
user1743999

追加することでこれを修正できます

compile 'com.Android.support:support-v4:18.0.0'

vertretungsplan build.gradleの依存関係にコンパイルし、この行を削除して、再度コンパイルします。

今では動作します

2
maysi

サポートライブラリとappcompatの両方を使用しようとしたため、この問題が発生しました。

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.Android.support:support-v4:23.1.0'
    compile 'com.Android.support:appcompat-v7:23.1.1'
    compile 'com.Android.support:design:23.1.1'
    compile 'com.google.Android.gms:play-services:8.3.0'
}

サポートライブラリを削除して古いバージョンに変更した後、コンパイルしました。

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    /*compile 'com.Android.support:appcompat-v7:23.1.1'
    compile 'com.Android.support:design:23.1.1'*/
    compile 'com.Android.support:appcompat-v7:22.2.0'
    compile 'com.Android.support:design:22.2.0'
    compile 'com.google.Android.gms:play-services:8.3.0'
}
1
wzbozon

私は同じ問題を抱えていました、あなたはすべきです:

File -> Invalidate Caches / Restart

1
mac229

2つの互換性のない依存関係がありました。

以下の依存関係によりエラーが発生しました。

compile 'com.google.Android.gms:play-services-fitness:8.3.0'
compile 'com.google.Android.gms:play-services-wearable:8.4.0'

フィットネスの依存関係をバージョン8.4.0に変更することで、アプリを実行できました。

compile 'com.google.Android.gms:play-services-fitness:8.4.0'
compile 'com.google.Android.gms:play-services-wearable:8.4.0'
1
bradley4

私は同じ問題に直面しました。これを行うことで解決しました。 actionbarsherlock-> module settings-> dependenciesに移動します。サポートv4ライブラリを削除します。左下にプラスボタンがあり、そこから1 Library Dependency(Select support-v4)を追加します。完了したら、gradleでプロジェクトの再同期とクリーンを行います。

0
Starksky

DaggerまたはButterknifeも使用している場合、クラスパスのようなbuild.gradleメインファイルに依存関係としてguavaを追加する必要があります。

com.google.guava:guava:20.0

一方、Gradleデーモンのヒープが大きくなる問題がある場合は、radleファイルへの追加を増やすことができます。

 dexOptions {
        javaMaxHeapSize "4g"
    } 

ここでの回答の多くは、重複する依存関係を見つけるための試行錯誤ですが、Execution failed for task ':app:dexDebug'.行から少し上にスクロールすると、重複のヒントが得られます

error with a hint

私の場合、次のエラーが発生しました。

UNEXPECTED TOP-LEVEL EXCEPTION:
com.Android.dex.DexException: Multiple dex files define L/com/parse/AbstractQueryController$1;
...
...
...
Execution failed for task ':app:dexDebug'.

したがって、このバグを修正するには、parse.AbstractQueryControllerを定義する重複する依存関係を見つける必要があることを知っていました。

私の場合、2つの異なるParseライブラリにロードされている2つのインポートされたモジュールがありました。プロジェクトを1つだけロードすると、問題が修正されました。

0
Max Worg

理由は、Eclipse IDEからインポートした後にライブラリが重複する可能性があります。

dependencies {
compile 'com.github.japgolly.Android:svg-Android:2.0.5'
compile 'com.google.Android.gms:play-services:+'
compile 'com.Android.support:appcompat-v7:21.0.3'
compile files('libs/androidannotations-api-2.7.1.jar')
compile files('libs/androidasync-2.1.2.jar')
//compile files('libs/google-play-services.jar')
compile files('libs/universal-image-loader-1.8.2.jar')}

コメントの後、私は同じ問題を抱えていました:

//compile files('libs/google-play-services.jar')

アプリはエラーを取得しません。

0
bheatcoker

Android St​​udioとmircrosoftのWebブラウザーへのアップグレードで非常に興味深い問題が見つかりました。 ieの最新バージョンに「愚かに」アップグレードしました。もちろん、マイクロソフトは無限の知恵でセキュリティをどうするかを正確に知っています。アプリをコンパイルしようとしたときに、Gradle-ビルドが失敗しました-タスクの実行が失敗しました。スタックを見ると、Java.exeへのパスが認識されないことがわかりました。前日コンパイルすることができたので、私はその奇妙なことに気づきました。システムのenv変数にJava_HOMEを追加し、Android St​​udioを閉じて再度開きました。低く、すべてのjave.exeを通過させたいかどうかを確認するために防火壁のナグスクリーンがポップアップしなかった場合は、見よ。

なんてクラスタ!

0
user3763372

(あなたの問題はより具体的であるように見えるので、これは間違ったスレッドかもしれませんが、問題のキーワードを検索するときに見つけたスレッドです)

すべての良いヒントにもかかわらず、私を助けた唯一のもの、そして他のすべてがうまくいかない場合に備えて、共有したいと思います:

ホームディレクトリの。gradleディレクトリを削除し、Android St​​udioによって再構築/再ダウンロードします。

Android St​​udio自体もSDKも再インストールしても修正できないという、あらゆる種類の奇妙なエラーを修正しました。

0
user2400553

また、クラスファイルの1つのパッケージのスペルが間違っているときに、このエラーに遭遇しました。これらの回答の多くはすぐにJarファイルにジャンプしますが、パッケージのスペルが正しいことも確認します。

0
nbroeking

build.gradleを追加するだけです

'com.parse.bolts:bolts-Android:1. +'をコンパイルします

'com.parse:parse-Android:1.11.0'をコンパイルします

そしてプロジェクトをGradleファイルと同期 enter image description here しかし、libsに解析Jarを追加しないでください:) OKK

0
Mourad MAMASSI

私の場合、Build > Clean Projectを実行しましたが、うまくいきました!

0
Chintan Shah