[Android Studio]Cannot merge new index xxx into a non-jumbo instruction

问题:Cannot merge new index xxxxx into a non-jumbo instruction, 意味着方法数超过65536了


解决方法:

在 app的 build.gradle 里面,

为 android 下的 defaultConfig里面添加一项:

multiDexEnabled true
就可以搞定了

举例:
android {
    
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.test.one"
        minSdkVersion 21
        targetSdkVersion 23
        multiDexEnabled true //Howard 2017-08-31 解决方法数超过65536的问题
        versionName '1.0.5'
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        versionCode 5

    }
 

其他相似的IDE工具解决方法

解决“Cannot merge new index xxx into a non-jumbo instruction”异常_u014441269的博客-CSDN博客

Jenkins报告收到一个比较奇怪的问题,从日志上看,提示如下:
Cannot merge new index xxx into a non-jumbo instruction
xxx一般是一个整数,比如66345等,从这个提示看,和Dex方法超过64K的限制一样,应该是同一个问题。不过App已经解决了这个64K方法的问题,怎么还会提示呢。

从提上看,是一个non-jumbo,让我想到了Dex的jumbo模式,这是一个用来配置制定该Dex是不是一个巨大的Dex的。报错的日志里显示是一个模块,从这可以推断出基本的问题:该模块需要生成一个Dex放进AAR包里给App使用,现在这个Dex生成不了啦,提示太大,这个是根本原因,所以只要解决了这个就可以了。

那么以前为什么不会出现这个问题呢,我们从git提交的历史来看,发现昨天的需求新增了一个第三方包,导致该模块的方法变多,超过了限制,所以今天就有了这个错误的提示。。

既然知道了原因,那么就很好解决了。

使用Gradle构建的,在模块的build.gradle里配置:

android {
dexOptions {
jumboMode true
}
}
如果是使用Eclipse+Ant构建的,在project.properties文件中增加如下配置:

dex.force.jumbo=true
就可以解决如上问题了。。

关于超过64K方法分Dex的解决办法可以参考官方的Configure Apps with Over 64K Methods这篇文章。

PS   android4.0以下会有异常

android4.0下使用multiDexEnabled属性的踩坑日记_fengchi95的博客-CSDN博客

由于公司需要需使用android4.0的设备进行开发,所以代码属性需针对android做适当调整。

首先添加 multiDexEnabled true 这条属性是为了解决方法数大于65k的问题。

defaultConfig {
        minSdkVersion 15
        targetSdkVersion 26
        multiDexEnabled true
    }
 
dependencies {
    compile 'com.android.support:multidex:1.0.0'
}
添加完这段代码在android高版本下是完全没问题的,但是在android4.0上会出错。解决办法是在继承了Application的类下添加如下代码:

public class MyApplication extends Application {
 
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}
 

猜你喜欢

转载自blog.csdn.net/qq_34823218/article/details/121606207