美文网首页
Cannot fit requested classes in

Cannot fit requested classes in

作者: 杜宁依果 | 来源:发表于2020-11-04 10:02 被阅读0次

    本文章借鉴:https://blog.csdn.net/qq_34772097/article/details/108274417

         文档中这么介绍的:“当您的应用及其引用的库包含的方法数超过 65536 时,您会遇到一个构建错误”,也就是收到了Android的64k引用的限制,那什么是64k的引用限制呢?文档:Android 应用 (APK) 文件包含 Dalvik Executable (DEX) 文件形式的可执行字节码文件,这些文件包含用来运行应用的已编译代码。Dalvik Executable 规范将可在单个 DEX 文件内引用的方法总数限制为 65536,其中包括 Android 框架方法、库方法以及您自己的代码中的方法。在计算机科学领域内,术语千(简称 K)表示 1024(即 2^10)。由于 65536 等于 64 X 1024,因此这一限制称为“64K 引用限制”。好了,问题的原因大概明了了,那就是解决了,其实文档给的解决办法是有两个的。

    第一种:minSdkVersion 设为 21 或更高的值,则默认情况下会启用 MultiDex,并且不需要 MultiDex 支持库。

    第二种:minSdkVersion 设为 20 或更低的值,则必须使用 MultiDex 支持库并对应用项目修改

    首先修改模块级 build.gradle 文件以启用 MultiDex,并将 MultiDex 库添加为依赖项


    defaultConfig{

        applicationId"bz.meitan.binmeitong"

        minSdkVersion19

        targetSdkVersion30

        versionCode1

        versionName"1.0"

        multiDexEnabledtrue

        testInstrumentationRunner"androidx.test.runner.AndroidJUnitRunner"

    }


    dependencies {

    implementation'androidx.multidex:multidex:2.0.1'

    }


    class BaseApplication : MultiDexApplication(), Application.ActivityLifecycleCallbacks{

    override fun attachBaseContext(base: Context?) {

            super.attachBaseContext(base)

            MultiDex.install(this)

        }


    }



    然后重新编译一下,发现问题就解决了

    相关文章

      网友评论

          本文标题:Cannot fit requested classes in

          本文链接:https://www.haomeiwen.com/subject/plgwvktx.html