1

I am getting below Error while running my Application.

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

I think the issue is with my .gradle file. Maybe some duplication for dependency in my .gradle file. I have removed one but, still getting the error.

My .gradle file is as below.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.mypackagename"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:appcompat-v7:25.0.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8'
    compile 'com.google.android.gms:play-services:11.0.2'
    compile 'com.android.support:design:25.0.0'
    compile 'com.android.support:recyclerview-v7:25.0.1'
    testCompile 'junit:junit:4.12'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.android.support:cardview-v7:24.2.+'

    compile 'com.google.code.gson:gson:2.6.1'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.okhttp:okhttp:2.6.0'

    compile 'com.google.firebase:firebase-auth:11.0.2'
    compile 'com.google.android.gms:play-services-auth:11.0.2'
}
}

My Manifest file:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackagename">

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.roadysmart.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar"></activity>
    <activity
        android:name=".UserProfileEditActivity"
        android:label="User Profile"
        android:screenOrientation="portrait" />
    <activity
        android:name=".SignInActivity"
        android:label="Sign In"
        android:screenOrientation="portrait" />
    <activity
        android:name=".SelectActivity"
        android:label="Were here to help"
        android:screenOrientation="portrait" />
    <activity
        android:name=".SignUpActivity"
        android:label="Sign Up"
        android:screenOrientation="portrait" />
    <activity
        android:name=".ForgotPasswordActivity"
        android:label="Forgot Password"
        android:screenOrientation="portrait" />
    <activity
        android:name=".UserProfileActivity"
        android:label="User Profile"
        android:screenOrientation="portrait" />

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="AIzaS0000000014789occURS5KvtKgfdreWjaDI" />

</application>

James Z
  • 12,209
  • 10
  • 24
  • 44
  • Possible duplicate of [MultiDex NoClassDefFound error](https://stackoverflow.com/questions/26655541/multidex-noclassdeffound-error) – Manoj Perumarath Jul 16 '17 at 05:46

2 Answers2

6

Try adding multiDexEnabled true in defaultConfig.

Moreover, its not recommended to use com.google.android.gms:play-services:11.0.2 directly rather include the dependencies you want to work with separately. Like if you want to work with Google Maps, then add only com.google.android.gms:play-services-maps:11.1.0 and so on.

fluffyBatman
  • 6,524
  • 3
  • 24
  • 25
2

com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

You've hit the dex limit for the number of methods that can be used in which affects all device lower than Android 5.0(21).

To fix this you need to enable multi-dex in your gradle and have your application extends MultiDexApplication to work around with the max Dex limit.

android {
    defaultConfig {
        ...
        minSdkVersion 21 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
}
fluffyBatman
  • 6,524
  • 3
  • 24
  • 25
Rod_Algonquin
  • 26,074
  • 6
  • 52
  • 63