Android Studio 编译出错 Cannot fit requested classes in a single dex file (# methods: 72777 > 65536)

Android 2020-06-26 阅读 38 评论 0

问题描述

使用 React Native 集成 react-native-navigation,在 Android Studio 上编译出错。

Error: null, Cannot fit requested classes in a single dex file (# methods: 72777 > 65536)

解决方法

主要原因是项目有点大,已经超过 65k 个方法。一个 dex 已经装不下了,需要个多个 dex,也就是 multidex,因为 Android 系统定义总方法数是一个 short int,short int 最大值为 65536。

尽可能删除不必要的依赖,确保 build.gradle 配置文件的 dependencies 尽可能干净,如果所有依赖项都是必须的,可以尝试在 android/app/build.gradle 文件中,增加 multiDexEnabled true 一行。

android {
    ...
    defaultConfig {
        ...
        minSdkVersion 21 
        targetSdkVersion 28
+       multiDexEnabled true
    }
}
dependencies {
    ...
}

重新编译。

最后更新 2020-06-26
MIP.watch('startSearch', function (newVal, oldVal) { if(newVal) { var keyword = MIP.getData('keyword'); console.log(keyword); // 替换当前历史记录,新增 MIP.viewer.open('/s/' + keyword, {replace: true}); setTimeout(function () { MIP.setData({startSearch: false}) }, 1000); } }); MIP.watch('goHome', function (newVal, oldVal) { MIP.viewer.open('/', {replace: false}); });