com.android.build.transform.api.TransformException

JavaAndroidGradleGoogle Play-ServicesGoogle Signin

Java Problem Overview


I am trying to integrate Google sign in, in my app, I added these libraries:

compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'

Also add this to project build gradle:

classpath 'com.google.gms:google-services:1.4.0-beta3'

Also add plugin to app build gradle:

apply plugin: 'com.google.gms.google-services'

then add required permissions but when I try to run my app, received this error:

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\java.exe'' finished with non-zero exit value 2

Java Solutions


Solution 1 - Java

Try adding multiDexEnabled true to your app build.gradle file.

 defaultConfig {
    multiDexEnabled true
}

EDIT:

Try Steve's answer first. In case it happens frequently or first step didn't help multiDexEnabled might help. For those who love to dig deeper here is couple similar issues (with more answers):

https://stackoverflow.com/q/30001051/2146871

https://stackoverflow.com/q/28917696/2146871

Solution 2 - Java

Another thing to watch for, is that you don't use

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

That will import ALL the play services, and it'll only take little more than a hello world to exceed the 65535 method limit of a single dex APK.

Always specify only the services you need, for instance:

compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-plus:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'

Solution 3 - Java

I just had to Clean my project and then it built successfully afterwards.

Solution 4 - Java

This error began appearing for me when I added some new methods to my project. I knew that I was nowhere near the 65k method limit and did not want to enable multiDex support for my project if I could help it.

I resolved it by increasing the memory available to the :app:transformClassesForDexForDebug task. I did this by specifying javaMaxHeapSize in gradle.build.

gradle.build

android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}

I tried this after having had no success with other common solutions to this problem:

  • Running a project clean
  • Manually deleting the /app/build and /build directories from my project
  • Invalidating Gradle Cache and restarting Android Studio

Error > Error:Execution failed for task > ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: > com.android.ide.common.process.ProcessException: > org.gradle.process.internal.ExecException: Process 'command > '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' > finished with non-zero exit value 1

Note: increasing the memory available to the DEX task can cause performance problems on systems with lower memory - link.

Solution 5 - Java

I also faced similar issue in Android Studio 1.5.1 and gradle 1.5.0. I just have to remove unwanted libraries from dependencies which may be automatically added in my app's build.gradle file. One was : compile 'com.google.android.gms:play-services:8.4.0'. So for best practices try to only include specific play services library like for ads include only

dependencies {
    compile 'com.google.android.gms:play-services-ads:8.4.0'
}

Although

defaultConfig {
    multiDexEnabled true
}

this will also solve the issue, but provides with a lot of Notes in gradle console, making it confusing to find the other real issues during build

Solution 6 - Java

you can see the documentation of Android

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

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

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

Solution 7 - Java

I'm using AS 1.5.1 and encountered the same problem. But just cleaning the project just wont do, so I tried something.

  • clean project
  • restart AS
  • Sync Project

This worked with me, so I hope this helps.

Solution 8 - Java

At my case change buildToolsVersion from "24" to "23.0.2", solve the problem.

Solution 9 - Java

In my case the Exception occurred because all google play service extensions are not with same version as follows

 compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:8.3.0'

It worked when I changed this to

compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:9.8.0'

Solution 10 - Java

I resolved it with the next:

I configured https://developer.android.com/studio/build/multidex.html?hl=es-419">multidex</a>

In build.gradle you need to add the next one.

android {
...
   defaultConfig {
       ...
       // Enabling multidex support.
       multiDexEnabled true
       ...
   }
   dexOptions {
      incremental true
      maxProcessCount 4 // this is the default value
      javaMaxHeapSize "2g"
   }
...
}
dependencies {
...
   compile 'com.android.support:multidex:1.0.1'
...
}

Add the next one in local.properties

org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

After that into Application class you need to add the Multidex too.

 public class MyApplication extends MultiDexApplication {

   @Override
   public void onCreate() {
       super.onCreate();
       //mas codigo
   }

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

Don't forget add the line code into Manifest.xml

<application
    ...
    android:name=".MyApplication"
    ...
/>

That's it with this was enough for resolve the bug: Execution failed for task ':app:transformClassesWithDexForDebug.

Check very well into build.gradle with javaMaxHeapSize "2g" and the local.properties org.gradle.jvmargs=-Xmx2048m are of 2 gigabyte.

Solution 11 - Java

I had same problem when i rolled back to old version via git, and that version had previous .jar library of one 3rd party api, and for some reason turned out that both jar of the same sdk, just different versions were in /libs folder.

Solution 12 - Java

First Delete intermediates files YOUR APP FOLDER\app\build\intermediates OR Clean your project and then rebuild.

Thent add

multiDexEnabled true

i.e.

defaultConfig {
        multiDexEnabled true
}

It's work for me

Solution 13 - Java

I solved this issue by change to use latest buildToolsVersion

android {
    //...
    buildToolsVersion '26.0.2' // change from '23.0.2'
    //...
}

Solution 14 - Java

A helpful answer if all above didn't work for you.

Go to your app gradle file,

Check all the dependency versions are mentioned with proper version code rather than any relative value like (com.example.demo:+)

Previous - implementation 'com.google.api-client:google-api-client-android:+'

After - implementation 'com.google.api-client:google-api-client-android:1.30.0'

Solution 15 - Java

If you are using the latest gradle version ie classpath 'com.android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3', then try updating the latest support respository from the SDK manager and rebuild the entire project.

Solution 16 - Java

If you need add this reference for cordova plugin add next line in your plugin.xml file.

<framework src="com.android.support:support-v4:+" />

Solution 17 - Java

If the different dependencies have a same jar also cause this build error.

For example:

compile('com.a.b:library1');
compile('com.c.d:library2');

If "library1" and "library2" has a same jar named xxx.jar, this will make such an error.

Solution 18 - Java

It happened to me because of Eclipse memory leak. I had to restart my computer.

Solution 19 - Java

I changed a couple of pngs and the build number in the gradle and now I get this. No amount of cleaning and restarting helped. Disabling Instant Run fixed it for me. YMMV

Solution 20 - Java

I had the same option and as soon as I turned off Instant run, it worked fine on my API16 device, but on the API24 device it worked fine with Instant run.

Hope this helps someone having the same issue

Solution 21 - Java

Simply go to Build - Edit Build Types - Properties Tab - Build Type Version and downgrade it to ver 23.0.1. Click ok. This works for android studio 1.5. It worked for me.

Solution 22 - Java

the write answer is in gradle put defaultConfig { multiDexEnabled true } then application name in manifest android:name="android.support.multidex.MultiDexApplication" wish this answer is hellpful to some one

Solution 23 - Java

this code solved problem

defaultConfig {
        multiDexEnabled true
}

For easiest way to implement google sign in visit: google sign in android

Also try

dexOptions {
        javaMaxHeapSize "4g" 
    }

Also keep same version number for different services.

Solution 24 - Java

I solved this issue by adding: In build.gradle:

defaultConfig {
    multiDexEnabled true
}

in local.properties ,

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

mention dependency:

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

Clean and Rebuild.

Solution 25 - Java

Incase 'Instant Run' is enable, then just disable it.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionsaeed shahiniView Question on Stackoverflow
Solution 1 - JavaJuliusScriptView Answer on Stackoverflow
Solution 2 - JavaA.GrandtView Answer on Stackoverflow
Solution 3 - JavaSteve GanemView Answer on Stackoverflow
Solution 4 - JavaMaurice GavinView Answer on Stackoverflow
Solution 5 - JavaraulView Answer on Stackoverflow
Solution 6 - JavaDavid HackroView Answer on Stackoverflow
Solution 7 - JavakcNekoView Answer on Stackoverflow
Solution 8 - JavaAyman MahgoubView Answer on Stackoverflow
Solution 9 - JavaUma AchantaView Answer on Stackoverflow
Solution 10 - JavaLeonardo PinedaView Answer on Stackoverflow
Solution 11 - JavalxknvlkView Answer on Stackoverflow
Solution 12 - JavaMohd. Jafar Iqbal khanView Answer on Stackoverflow
Solution 13 - JavaTung DuongView Answer on Stackoverflow
Solution 14 - JavaBishnu DasView Answer on Stackoverflow
Solution 15 - Javawilliamj949View Answer on Stackoverflow
Solution 16 - JavaAdexe RiveraView Answer on Stackoverflow
Solution 17 - JavawqycsuView Answer on Stackoverflow
Solution 18 - JavaRonen FestingerView Answer on Stackoverflow
Solution 19 - JavaSteelBytesView Answer on Stackoverflow
Solution 20 - JavaStillieView Answer on Stackoverflow
Solution 21 - JavaDima RowlandView Answer on Stackoverflow
Solution 22 - JavaMosaView Answer on Stackoverflow
Solution 23 - Javauser6435056View Answer on Stackoverflow
Solution 24 - JavaCrime_Master_GoGoView Answer on Stackoverflow
Solution 25 - JavaRavid RinekView Answer on Stackoverflow