Unable to execute dex: method ID not in [0, 0xffff]: 65536
Update 3 (11/3/2014)
Google finally released official description.
Update 2 (10/31/2014)
Gradle plugin v0.14.0 for Android adds support for multi-dex. To enable, you just have to declare it in build.gradle:
android {
defaultConfig {
...
multiDexEnabled true
}
}
If your application supports Android prior to 5.0 (that is, if your minSdkVersion
is 20 or below) you also have to dynamically patch the application ClassLoader, so it will be able to load classes from secondary dexes. Fortunately, there's a library that does that for you. Add it to your app's dependencies:
dependencies {
...
compile 'com.android.support:multidex:1.0.0'
}
You need to call the ClassLoader patch code as soon as possible. MultiDexApplication
class's documentation suggests three ways to do that (pick one of them, one that's most convenient for you):
1 - Declare MultiDexApplication
class as the application in your AndroidManifest.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>
2 - Have your Application
class extend MultiDexApplication class:
public class MyApplication extends MultiDexApplication { .. }
3 - Call MultiDex#install
from your Application#attachBaseContext
method:
public class MyApplication {
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
....
}
....
}
Update 1 (10/17/2014):
As anticipated, multidex support is shipped in revision 21 of Android Support Library. You can find the android-support-multidex.jar in /sdk/extras/android/support/multidex/library/libs folder.
Multi-dex support solves this problem. dx 1.8 already allows generating several dex files.
Android L will support multi-dex natively, and next revision of support library is going to cover older releases back to API 4.
It was stated in this Android Developers Backstage podcast episode by Anwar Ghuloum. I've posted a transcript (and general multi-dex explanation) of the relevant part.
Dex Loader] Unable to execute dex: method ID not in [0, 0xffff]: 65536 Size Exceed
My answer is matched with the answer of this following question, his answer give me final solution.
Shrink Google Play Service
Who give negative vote of my question, please see this link and try to build up yourself like him. :)
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 in android studio
Android has a pre-defined upper limit of Methods of 65536
.
The most common cause of this is using the full google play services library, instead of just the subset you need, eg design, cardview, maps etc.
If this is not the case, then use the multidex
library, which enables a bigger limit.
See here:
http://developer.android.com/tools/support-library/features.html#multidex
Basically just this in gradle:
com.android.support:multidex:1.0.0
Unable to execute dex: method ID not in [0, 0xffff]:65536 in eclipse
You surpassed the 65k method limit in DEX.
Earlier versions of Android build system report the error as follows:
Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
You can read about the problem and an official workaround here: http://developer.android.com/tools/building/multidex.html
Google Play Services is a major reason you are reaching this limit. If you switch to the gradle build system you can specify which APIs to compile into your executable. See: https://developers.google.com/android/guides/setup
Related Topics
How to Put a Listview into a Scrollview Without It Collapsing
How to Enable or Disable the Gps Programmatically on Android
How to Retrieve the Dimensions of a View
Java.Lang.Outofmemoryerror: Bitmap Size Exceeds Vm Budget - Android
Android: How to Get String from Resources Using Its Name
Android: How to Prevent the Soft Keyboard from Pushing My View Up
Android Respond to Url in Intent
How to Create Custom Ratings Bar in Android
Update Data in Listfragment as Part of Viewpager
How to Connect to Android With Adb Over Tcp
Libraries Do Not Get Added to Apk Anymore After Upgrade to Adt 22
How to Filter a Recyclerview With a Searchview
Difference Between Getcontext() , Getapplicationcontext() , Getbasecontext() and "This"
Comparison of Android Networking Libraries: Okhttp, Retrofit, and Volley
Android: Difference Between Parcelable and Serializable
How to Put Google Maps V2 on a Fragment Using Viewpager
How to Detect When Wifi Connection Has Been Established in Android