Error:Execution failed for task ':app:dexDebug

2019-01-28 21:38发布

问题:

In android studio I implement push notification. I downloaded a demo and import in android studio. There is no problem in source code but when I run this program it will show the problem:

Error:Execution failed for task ':app:dexDebug'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_40\bin\java.exe'' finished with non-zero exit value 2

How can I solve it?Please help!

回答1:

You need to know the root cause of the problem. Sometime it may be JDK error. When I analysed I found

Unable to execute dex: method ID not in [0, 0xffff]: 65536

Just above the following error

org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_40\bin\java.exe'' finished with non-zero exit value 2

So I enabled multidex and it worked

android {
   defaultConfig {
      ...
      multiDexEnabled = true
   }
}

So in order to figure out your problem, just track what is going wrong.



回答2:

The problem is the JDK .. use JDK 7 because 8 isn't supported to implement Android. Read more about it here. Good Luck



回答3:

Not sure if you've tried it yet, but I removed the .bin and .lock files from the .gradle folder (but kept cache.xml) and it built successfully! Problem solved for me.

I switched to JDK 7 but it didn't change anything so back to version 8.



回答4:

This problem is not because of JDK 1.8 or 1.7, Its due to dependencies. Please check your Gradle Dependencies.

I have faced similar issue, in my case the problem was occurred due to Facebook dependency

dependencies {
    ...
    ...
    ...
    ...
    ...
    //Commented the following one
    compile 'com.facebook.android:facebook-android-sdk:4.0.0'
}

after commenting the above line everything was normal



回答5:

Try to add dexOptions block to android

android {

    dexOptions {
        javaMaxHeapSize "4g"
    } 
}

It worked for me.