飞道科技

飞道科技文档总汇

react-native The number of method references in a .dex file cannot exceed 64K

报错原因:项目本身过大,或者项目引用的第三方框架过多,触发了64 k引用限制。

关于64 k引用限制

Android应用程序(APK)在Dalvik可执行文件的形式包含可执行的字节码文件(DEX)文件,其中包含已编译的代码来运行你的应用程序。Dalvik可执行规格限制一个Dex文件包含65536个方法:包括Android框架方法、Library方法的总数、和你自己的代码方法总数。因为65536等于64×1024,这一限制被称为“64k引用限制”。 这个极限就要求我们配置应用程序的构建过程,需要生成多个DEX文件,所以称为multidex 配置。

解决方法

分割 Dex 文件解决方法限制

1. android/app/build.gradle

defaultConfig {
	...
	multiDexEnabled true
}

2. android/app/src/main/AndroidManifest.xml

<activity android:name="android.support.multidex.MultiDexApplication" />

3. android/app/src/main/java/com/antCard/MainApplication.java

import android.content.Context;
import android.support.multidex.MultiDex;


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