Android-エラー:タスク ':app:transformClassesWithDexForRelease'の実行に失敗しました


191

問題は、debugモードに変更するとアプリを実行できるが、releaseモードに切り替えると失敗することです。

例外:

**FAILURE: Build failed with an exception.**
> Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

私がgradle buildコマンドをstacktraceで実行したとき、これは私が得るものです

./gradlew app:transformClassesWithDexForRelease --stacktrace

> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

*Exception is:*

>org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexForRelease'.
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
            at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
            at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
            at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
            at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
            at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
            at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
            at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
            at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
            at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
            at org.gradle.internal.Factories$1.create(Factories.java:22)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
            at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
            at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
            at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
            at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
            at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
            at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
            at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
            at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
            at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
            at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
            at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
            at org.gradle.util.Swapper.swap(Swapper.java:38)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
            at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
            at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:54)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:57)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:47)
            at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173)
            at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
            ... 68 more
    Caused by: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:422)
            at com.android.build.gradle.internal.pipeline.TransformTask$3.call(TransformTask.java:178)
            at com.android.build.gradle.internal.pipeline.TransformTask$3.call(TransformTask.java:174)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:55)
            ... 77 more
    Caused by: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1472)
            at com.android.builder.core.AndroidBuilder.convertByteCode(AndroidBuilder.java:1389)
            at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:250)
            ... 80 more
    Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1456)
            ... 82 more
    Caused by: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:43)
            at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1464)
            at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1456)
    Caused by: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
            at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:41)
            ... 2 more

使ってます

  • Android Studio 2.0 Beta 6
  • Javaバージョン:Java(TM)SEランタイム環境(ビルド1.8.0_73-b02)
  • Gradleバージョン:com.android.tools.build:gradle:2.0.0-beta6
  • そして、Multidexを有効にしました

私のbuild.gradleファイル

apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount'

android {

    def VERSION_CODE = 52
    def VERSION_NAME = "1.0"
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        applicationId "com.example.app"
        manifestPlaceholders = [appName: "Personal App"]
        minSdkVersion 14
        targetSdkVersion 23
        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
        versionCode VERSION_CODE
        versionName VERSION_NAME

        // Enabling multidex support.
        multiDexEnabled true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
        encoding = 'UTF-8'
    }

    signingConfigs {
        livekeystore {
            storeFile file('../key.jks')
            keyAlias 'livekeystore'
            keyPassword '123asd'
            storePassword '123asd'
        }
    }


    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.burgerking

            manifestPlaceholders = [googleMapsKey: "@string/release_google_map_key", appNameSuffix: ""]
        }

        debug {
            applicationIdSuffix '.dev'
            debuggable true
            minifyEnabled false
            shrinkResources false
            zipAlignEnabled false

            manifestPlaceholders = [googleMapsKey: "@string/debug_google_map_key", appNameSuffix: ' (Dev-' + VERSION_CODE + ')']

        }
    }

    dexOptions {
        incremental true
        javaMaxHeapSize "4g" // 2g should be also OK
    }

    useLibrary 'org.apache.http.legacy'

}

repositories {
    maven { url 'https://mint.splunk.com/gradle/' }
    maven { url "http://dl.bintray.com/populov/maven" }
    mavenCentral()
}

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.4.2'
        classpath 'com.newrelic.agent.android:agent-gradle-plugin:4.244.0'
    }
}


dependencies {
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.android.support:recyclerview-v7:23.2.0'
    compile 'com.android.support:cardview-v7:23.2.0'
    compile 'com.android.support:design:23.2.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.android.gms:play-services-base:8.4.0'
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
    compile 'com.google.android.gms:play-services-maps:8.4.0'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.googlecode.libphonenumber:libphonenumber:7.0.5'
    compile 'com.facebook.android:facebook-android-sdk:4.1.1'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup:pollexor:2.0.2'
    compile 'com.makeramen:roundedimageview:2.1.0'
    compile 'com.mcxiaoke.volley:library:1.0.16@aar'
    compile files('libs/now-auth-api.jar')
    compile 'com.jakewharton:butterknife:5.1.2'
    compile 'com.github.ksoichiro:android-observablescrollview:1.2.0'
    compile 'io.card:android-sdk:5.3.0'
    compile 'com.appboy:android-sdk-ui:1.10.3'
    testCompile 'junit:junit:4.11'
    testCompile('org.mockito:mockito-core:1.9.5') {
        exclude group: 'org.hamcrest'
    }
    testCompile('org.powermock:powermock-module-junit4:1.5') {
        exclude group: 'org.hamcrest'
    }
    testCompile('org.powermock:powermock-api-mockito:1.6.2') {
        exclude group: 'org.hamcrest'
    }

    compile 'me.grantland:autofittextview:0.2.1'

}

削除minifyEnabled trueした場合、リリースビルドを機能させることができるようです。なぜそれを解決する別の方法があるのですか


アプリのbuild.gradleファイルを投稿できますか?
Harisewak 2016年

@Harisewak私は質問を更新しました。今すぐ見てください
シェラズアフマドキルジ

はい@Sherazはい、minifyEnabledをfalseに切り替えると問題が解決します。私はこれをドキュメントで読みました: 'コードの縮小をオンにするにはminifyEnabledを有効にし、次にリソースの縮小をオンにするにはshrinkResourcesを有効にする必要があります。まだminifyEnabledを使用していない場合は、shrinkResourcesを追加する前に動作することを確認してください。リフレクションなどでアクセスするメソッドがすべて保持ルールとしてリストされていることを確認するために、proguard-rules.proファイルを編集する必要がある場合があるためです。ファイル '(tools.android.com/tech-docs/new-build-system/resource-shrinking)。これが事実であるかどうかを確認してください。
Harisewak 2016年

1
@Harisewakデバッグでタスクを実行しても問題は解決しないが、このエラーが発生するUncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef
Sheraz Ahmad Khilji

私のプロジェクトにも同じ問題があります。com.android.tools.build:gradle:1.3.0を使用すると、コンパイルできます。2.0.0を使用するとすぐに同じ問題が発生します
Santacrab

回答:


185

このコードだけを修正しました。

local.properties

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

そしてあなたはこれをgradleで変更するべきです

defaultConfig {
    applicationId "yourProjectPackage"
    minSdkVersion 15
    versionCode 1
    versionName "1.0"
    targetSdkVersion 23

    multiDexEnabled true //important
}

4
「local.properties」は、そのファイル名または構成値ですか?プロジェクト内のどこにありますか(例:どのフォルダー)?
ユリシーズアルベス

1
local.propertiesファイルは、プロジェクトのルートレベルにあります。multiDexについて問題がある場合-> developer.android.com/studio/build/multidex.html
aemre

build.gradleにmultiDexEnabled trueを挿入しただけで、マジックが完了しました。ありがとうございました。
Marcelo Gumiero 2017

これが何を意味するのかはわかりませんが、うまくいきました!
DaveNOTDavid 2017年

API <21では、クラスmultiDexEnabledを拡張しないと、sになります。ApplicationMultiDexApplicationNoClassDefFoundError
Miha_x64 2017

82

multiDexEnabled = trueアプリのdefaultConfigで作成すると、期待通りの結果が得られます。

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
    multiDexEnabled = true
}

それはMultidexを許可する唯一のステップではありません。DexExceptionとにかく、が表示されたときにのみ必要です。developer.android.com/studio/build/multidex.html
OneCricketeer 2017

45

私の場合、プロジェクトからファイルを削除した後、問題は解決jarました。jarプロジェクト内のファイルの1つが古いバージョンのを使用していたようですgoogle play services


jackrabbit-standalone-2.12.2.jarの同じ問題。プロジェクトに追加すると、問題が発生します。
Alexeev Valeriy

1
@MikeOx私はいくつかのAndroidツールを更新し、その結果、いくつかのjarファイルの2つのバージョン(mockable-android-24.jarやmockable-android-25.jarなど)になりました。古いものを削除すると、これらのビルドエラーが修正されました。
parvus 2016年

しかし、私はどのjarファイルも使用していないのに、なぜこの問題に直面しているのですか
Mr. Mad

15
このソリューションの詳細な説明を教えていただけますか
Ivan Milisavljevic '20

@IvanMilisavljevic JARファイルではなく、Gradleを使用できるようになりました。developers.google.com/android/guides/setup#split
OneCricketeer

39

私も同じエラーを受け取りました:

エラー:タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。com.android.build.api.transform.TransformException:java.lang.RuntimeException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:プロセス 'command' C:\ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe ''がゼロ以外の終了値1で終了しました

よく私は次の手順の助けを借りてこれを修正しました:

  1. アプリのbuild.gradle(プロジェクトルートにあるものではない)を開き、次を追加します。

    android {
    //snippet
    //add this into your existing 'android' block
    
        dexOptions {
        javaMaxHeapSize "4g"
        }
    
    //snip
    }
  2. もう一度ビルドしてみてください。

注:4gは4ギガバイトであり、これはdex操作の最大ヒープサイズです。


私の日を救った!乾杯!
devhermluna 2016

最高の...私は何時間も歩き回っています。
MbaiMburu

33

マルチデックスは不要、繰り返します、マルチデックスは必要ありません


詳しく説明します。Multidexは基本的にAndroidに付属するツールです。trueに設定すると、64,000を超えるメソッドを持つアプリは、わずかに変更されたビルドプロセスを使用してコンパイルできます。ただし、エラーが次のような場合にのみmultidexを使用する必要があります。

出力の書き込みに関する問題:フィールド参照が多すぎます:131000; 最大は65536です。--multi-dexオプションを使用してみてください。

またはこのように

Dalvik形式への変換に失敗しました:dexを実行できません:メソッドIDが[0、0xffff]にありません:65536

しかし、ここではそうではありません!ここでの問題(少なくとも私にとって)は、build.gradleファイルの依存関係が原因です。

解決策: 特定の依存関係を利用する-依存関係のセクション全体をインポートするだけではありません!

たとえば、場所にPlay Servicesの依存関係が必要な場合は、場所にのみ依存関係をインポートします。

行う:

compile 'com.google.android.gms:play-services-location:11.0.4'

してはいけないこと:

compile 'com.google.android.gms:play-services'

これを引き起こす可能性のある別の問題は、使用している外部ライブラリの一種であり、依存関係の以前のバージョンを参照している可能性があります。その場合は、次の手順に従ってください。

  1. SDKマネージャーに移動し、依存関係の更新をインストールします
  2. build.gradleファイルに最新バージョンが表示されていることを確認してください。最新バージョンを入手するには、次のリンクを使用してください:https : //developers.google.com/android/guides/setup
  3. ライブラリを編集して(または、存在する場合は更新バージョンをインストールして)、最新バージョンを参照します

私はこの質問が古いことを知っていますが、理由を考えずにmultidexを使用すると、アプリのANRが発生する可能性があるため、この質問に答える必要があります。あなたがそれを必要と確信し、それが何であるかを理解している場合にのみmultidexを使用してください。

私自身、multidexを使用せずにこの問題を解決するために何時間も費やしてきました。調査結果を共有したかっただけです。


鮮やかさ!完璧に動作します!
stoefln 2017

1
どの特定の依存関係が問題の原因であるかをどのようにして知るのですか?追加com.facebook.android:audience-network-sdk:4.+したので、それ以降はビルドできません。
Ciberman 2017年

あなたは私の日を救った!
Rowan

1
そのような愚かな答え。依存関係が多い場合は、とにかくmulti dexが必要になります。Kotlinライブラリ、いくつかのGoogleサービス(com.google.android.gms:play-services-*:*)、firebaseサービス、crashlytics、gson、androidx(サポートライブラリ)、cardview、recyclerview、android.material:materialを追加するだけです。マルチDEXなしでは不可能です(capslockは好きですか?そうではないので、次回はこのような質問に答えないでください...)
user155

ここの体は賢い!正確に!、multidexエラーではなく、multidexエラーは異なり、一部の依存関係から発生する場合があります。と@ user155、RUCHIRは依存関係の問題に対して責任を負いません!そして、私はcapslocksが好きです:)
Hossein

25

アプリレベルのdefaultConfigにmultiDexEnabled trueを追加しますgradle

defaultConfig {
    applicationId "your application id"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}

24

アプリにも同様の問題がありました。これが私がしたことです。

1.これをbuild.gradleのモジュールに追加:app

multiDexEnabled = true

したがって、コードは次のようになります。

    android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example..."
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled = true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

これでうまくいきました。これがあなたにも役立つことを願っています:)

同じプロジェクトで、Firebaseも使用していました。したがって、MultiDexEnabledを有効にすると、FirebaseのPre Lollipopデバイスで別の問題が発生します。一部のFireBaseクラスは識別されませんでした。(プロバイダーcom.google.firebase.providerを取得できません)。
これを解決する方法をここで説明します。


minifyEnable trueを指定すると例外が発生します-以下は私の質問、stackoverflow.com / questions / 51720018 /…です 。これで私を助けてください。
Naveen

21

Google Play Servicesを7.5から9.0にアップグレードすると、このエラーが発生しました

以下のいずれかにエラーがあります:

compile 'com.google.android.gms:play-services:9.0.0'

に変わったとき

compile 'com.google.android.gms:play-services:7.5.0'

エラーはありません。これを試して


1
おかげで、バージョンを変更して「com.google.android.gms:play-services:8.4.0」をコンパイルしました。volleyは、play-services:> 9.0
jai_b

3
これが私の解決策でした。問題は、いくつかのサードパーティモジュールが異なるバージョンのplay-servicesを参照しているため、これらのバージョンが常に同期していることがどのように予想されるのですか?非常に奇妙な建築ディテール。
Ryan H.

1
これは使用しないでください。これらのライブラリを選択してコンパイルしてください。developers.google.com/android/guides/setup#split
OneCricketeer 2017

13

Android 3.4にアップデートした後、エラーが発生し始め、上記の解決策をすべて試しました。

問題の根本的な原因は、Android Studioを更新するとInstant Runが有効になることでした。

したがって、試すことができる解決策の1つは、インスタントランを無効にすることです。有効になっている場合は、私の問題を修正しました。


1
同じ問題がありました。Instant Runを無効にして再度有効にするとうまくいきました。
Fogh

1
私の問題も修正しました。ご注意ください-インスタントランは便利なので、すぐに修正できることを願っています
SimonH

1
Aaaaarg彼らは常に更新時にこれを有効にし、それは常に非常に多くの問題を引き起こします。
Oliver Dixon

1
Jep、これは私にもFirebaseをプロジェクトに組み込んだ後の問題の原因でした。InstantRunを無効にすると、ようやくビルドできるようになりました。ありがとう!
Starwave

1
この問題では、インスタントランを無効にするとうまくいきました。再びエラーが発生しませんでした。
ウェズリーフランク

11

さて、質問は答えられ、受け入れられていると思います。しかし、私は私が直面していることと、それをどのように解決したかを書きます。

私も同じエラーを受け取りました:

エラー:タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。com.android.build.api.transform.TransformException:java.lang.RuntimeException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:プロセス 'command' C:\ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe ''がゼロ以外の終了値1で終了しました

私はすべての設定を適用することができず、成功しました。しかし、プロジェクトを再度デバッグしようとしたとき。今回は3つのエラーが発生しました(上記を含む):

エラー:Java HotSpot(TM)64ビットサーバーVM警告:CodeCacheがいっぱいです。コンパイラが無効になっています。

そして

エラー:Java HotSpot(TM)64ビットサーバーVM警告:-XX:ReservedCodeCacheSize =を使用してコードキャッシュサイズを増やしてみてください

それで私は何をしましたか?私はAndroid Studioに行くだけです:

ファイル>キャッシュの無効化/再起動..>無効化して再起動

クイックフィックス!

追記:

Gradleコンソールで見つけたもの:

:app:incrementalDebugTasks:app:prePackageMarkerForDebug:app:fastDeployDebugExtractor:app:generateDebugInstantRunAppInfo:app:transformClassesWithDexForDebug dex in processを実行するには、Gradleデーモンに大きなヒープが必要です。 現在、約910 MBあります。ビルドを高速化するには、Gradleデーモンの最大ヒープサイズを2048 MB以上に増やします。 これを行うには、プロジェクトgradle.propertiesでorg.gradle.jvmargs = -Xmx2048Mを設定します。詳細については、https//docs.gradle.org/current/userguide/build_environment.html:app:transformClassesWithDexForDebug FAILEDを参照してください

オラクルのブログ詳細を読む


9

このコードをgradle.propertiesに書き込んだばかりで、今は問題ありません

org.gradle.jvmargs=-XX:MaxHeapSize\=2048m -Xmx2048m

8
  1. あなたのgradleのjarファイルを削除してください
  2. 同期する
  3. そのjarをコピーして同期します

これでうまくいきました。


どのjarファイルをより具体的にできますか?プロジェクト内のjarファイルgradle/wrapperですか?
HendraWD 2018

4
「瓶」に言及している人々とそれが何であるか分からない。それは何も説明しません。
トレース

7

特定のサービスを使用するだけで機能しました。

たとえば、使用する代わりに:

compile 'com.google.android.gms:play-services:10.0.1'

私が使用した:

com.google.android.gms:play-services-places:10.0.1


1
こっちも一緒。コンパイル 'com.google.android.gms:play-services:10.2.0'をコンパイル 'com.google.android.gms:play-services-location:10.2.0'
Sukhbir

6

私はそれが少し古い質問であることを知っていますが、それでもまだです。これが私に起こるたびに、私はすべてのplay-servicesライブラリーを含めたからです。build.gradle(module)ファイルでplay-services:xxxをplay-service-:xxxに変更するだけです


6

Sol 1: In build.gradle

defaultConfig {
    multiDexEnabled true
}

プロジェクトをクリーンアップして再ビルドします。

Sol 2: さらにlocal.properties

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

ソル3

compile 'com.android.support:multidex:1.0.1'

それ以外の場合は、3つすべてをアプリケーションに追加します。


5

multiDexEnabledをtrueに設定するだけでうまくいきました。

    defaultConfig 
    {
        multiDexEnabled true     
    }

3

jdkを1.8.0_74に、Android-studioを2.1プレビュー1に更新し、アプリケーションファイルに追加しました

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

2

私も同じ問題を抱えていました。ある日、プログラムは完全に機能していましたが、その後は機能しませんでした。私は変更をGithubで確認しました。私にとっての問題は、依存関係のbuild.gradle(Module:app)にありました:

compile 'com.android.tools.build:gradle:2.1.2'

この行が問題の原因でした。それを変更した後、アプリは再び適切に実行されていました


1
その他のチャンスはありません>
Ajay Pandya 2017

1
何に変えますか?
Ruchir Baronia

1
私はそれを消しました(私は今それをチェックしていました)そしてそれは働き続けました
サラアルベロラ

2

この行をあなたの build.gradle

 defaultConfig {
    ............
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    compileOptions.encoding = 'ISO-8859-1'
    multiDexEnabled true
}

4
ここに追加した「行」はどれですか。
OneCricketeer 2017

2

DefaultConfigでmultiDexEnabled = trueを追加します

    defaultConfig {
    applicationId "com.test"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    multiDexEnabled = true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

2

したがって、私はmultiDexEnabledフラグを追加しても解決しませんでした。エラーメッセージが表示される前に実際にありました。

私のエラーを解決したのは、すべての再生サービスライブラリの同じバージョンを使用していることを確認することでした。1つのライブラリには11.8.0がありましたが、ライブラリを使用するアプリでは11.6.0を使用しており、その違いがエラーメッセージの原因でした。

したがって、ライブラリを以前の回答のように特定のバージョンに変更するのではなく、警告によってAndroid Studioでバージョンの混在が明示的に推奨されていないため、全体で同じバージョンを使用していることを確認したい場合があります。


2

たくさんの努力の後、私は資格情報の下に追加し、私は成功しました

1)app-> 'proguard-rules.pro'ファイル

-ignorewarnings

-keep class * {
    public private *;
}

2)また、アプリに追加-> build.gradleファイル

android {

        ...........................
    defaultConfig {
        ..................  

     multiDexEnabled true
    }


    buildTypes {
        debug {
            minifyEnabled true
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
        innerTest {
            matchingFallbacks = ['debug', 'release']
        }

    }

...................................................
}

dependencies {
    ..................................
    implementation  'com.android.support:multidex:1.0.2'
}

2

Android Studioのデフォルトの最大ヒープサイズは1280MBです。大規模なプロジェクトで作業している場合、またはシステムに大量のRAMがある場合は、コアIDE、Gradleデーモン、KotlinデーモンなどのAndroid Studioプロセスの最大ヒープサイズを増やすことで、パフォーマンスを向上させることができます。

RAMが5 GB以上の64ビットシステムを使用している場合は、プロジェクトのヒープサイズを手動で調整することもできます。これを行うには、次の手順に従います。

メニューバーから[ファイル]> [設定]をクリックします(またはmacOSの[Android Studio]> [設定])。[外観と動作]> [システム設定]> [メモリ設定]をクリックします。

詳細はクリックしてください

https://developer.android.com/studio/intro/studio-config

ここに画像の説明を入力してください


1

Gradle(モジュールアプリ)のGoogle Play開発者サービスを9.xxから以前のバージョン8.4.0に変更するだけです


これは、使用している他のすべてのGoogle Play開発者サービスバージョンが一致していないことを示しています。
OneCricketeer 2017


1

Google Play開発者サービス9.8.0を更新した後に問題が発生した場合は、これを依存関係に追加します。

`dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.google.firebase:firebase-messaging:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-crash:9.8.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'

}

1

これはデバッグビルドでも発生し、すべてのモジュールレベルとプロジェクトレベルのビルドフォルダーをクリアしただけで、うまくいきました。


たった今私のために働いた。
WillC、2018年

1

まだVS-TACOを使用していて、この問題が発生している場合。これは、jarファイルのバージョンの不一致が原因で発生します。

フォルダー内のbuild.gradleファイルに修正を追加する必要がありplatforms\androidます。

 defaultConfig {
        multiDexEnabled true 
 }

 dependencies {
      compile 'com.android.support:multidex:1.0.3'
 }

それはで行う方が良いでしょうbuild-extras.gradleがある場合は他のすべての変更を(自動的にbuild.gradleファイルにリンクされている)ファイル、およびにすべてを削除しplatforms/androidたフォルダが、そこだけ残してbuild-extras.gradleファイルを。次に、コンパイルします。


1

これらの答えはどれもうまくいきませんでした。Android Studio 3.4.1を使用しています。

プロジェクトをビルドできましたが、モバイルデバイスにデプロイしようとしたときにAndroidスタジオでこのエラーが表示されました。「インスタントラン」のせいだと判明した。

この回答に従ってください:https : //stackoverflow.com/a/42695197/3197467


0

本当にどうなのかはわかりませんが、これをすべて行った後、バグはなくなりました。

1

削除する implementation 'com.google.android.gms:play-services:12.0.1'

そして追加

implementation 'com.google.android.gms:play-services-location:12.0.1'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
implementation 'com.google.android.gms:play-services-places:12.0.1'

2

git、jdkを更新し、プロジェクト構造のJDKの場所を変更する

プロジェクトのビルドフォルダーを削除する

4

プロジェクトのクリーンと再構築

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.