解决Android 应用方法数不能超过65K的问题

Posted claireyuancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Android 应用方法数不能超过65K的问题相关的知识,希望对你有一定的参考价值。

Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536

假设你的应用出现这样的问题。那恭喜你,你的app内容已经许多了,也恭喜你遇到了这么一个坑爹的问题这个问题在许多地方都有解释假设解决,可是都很麻烦。我给个比較方便的

此处解说用的是android studio



首先配置build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 23
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    
    dexOptions {
	javaMaxHeapSize "4g"
    }
    ...
}

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


最后在application或者是你的AppContext 中增加初始化操作就能够了,也能够在onCreate里面运行。要放在super.onCreate(); 的前面。

<pre style="overflow: auto; margin-top: 20px; margin-bottom: 20px; padding: 15px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="word-break: break-all; border-radius: 4px; background-image: none; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">public class AppContext extends Application {

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

    @Override
    public void onCreate() {
        super.onCreate();
    }
}</span>


假设你想知道你的应用如今究竟是有多少个方法了,能够使用例如以下方法

技术分享技术分享


打开命令行

进入e盘的dex目录
然后输入例如以下命令java -jar dex-method-counts.jar navigation-debug-v1.00.30-2016-02-03.apk

技术分享技术分享

回车之后会统计

技术分享

技术分享


工具包的下载地址:点击打开链接

http://download.csdn.net/detail/asd2603934/9432831























以上是关于解决Android 应用方法数不能超过65K的问题的主要内容,如果未能解决你的问题,请参考以下文章

Android 方法数 65k 限制与 LinearAlloc 限制

Android 解决方法数 65536 (65k) 限制

Android应用打破65K方法数限制

Android 65K问题之Multidex原理分析及NoClassDefFoundError的解决方法

为啥Windows Mobile系统支持的屏幕显示颜色数不超过65K?

为啥Windows Mobile系统支持的屏幕显示颜色数有不超过65K的限制?