zoukankan      html  css  js  c++  java
  • Android工程方法数超过64k,The number of method references in a .dex file cannot exceed 64K.

    最近将一个老的Eclipse项目转到Android Studio后,用gradle添加了几个依赖,项目可以make,但是一旦run就报错

    Error:The number of method references in a .dex file cannot exceed 64K.
    Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
    

    原因

    项目的方法数超过了64k,需要进行分包处理!

    Android Studio解决方案:

    至于Eclipse的解决方法,似乎需要采用相应插件!

    第一步,添加依赖
    implementation 'com.android.support:multidex:1.0.1'`
    
    第二步,添加配置,build.gradle(app)
    1. buildTypes
     dexOptions {
                preDexLibraries false
            }
    

    这里是需要添加到buildTypes中,注意如果app依赖其他的module,那么在相应的moudle(build.gradle)中也需要添加!
    2. 在defaultConfig下添加

    multiDexEnabled true
    
    第三步,创建MultiDexApplication
    1. 如果你有自定义的Application
      自定义Application 继承 android.support.multidex.MultiDexApplication;,然后重写其attachBaseContext方法
    /**
         * 方法超过64K,需要采用分包
         * fjj 2019-3-27
         * @param base
         */
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this); // 初始化
        }
    
    1. 如果你自己的项目没有自定义Application,也不需要自定义时,可直接在AndroidManifest.xmlapplication下指定:
    android:name="android.support.multidex.MultiDexApplication;"
    

    最后

    此致,敬礼!

  • 相关阅读:
    大数据笔记
    关于服务器编程的笔记
    [转] IPC之管道、FIFO、socketpair
    一些公司链接
    Delphi 通过字符串实例化类
    Delphi根据字符串实例化对象
    Class-reference types 类引用类型--快要失传的技术
    GETCLASS与REGISTERCLASS的应用一例
    Delphi XE增强的RTTI妙用--动态创建包中的窗口类
    Delphi2010的RTTI增强
  • 原文地址:https://www.cnblogs.com/numen-fan/p/10609759.html
Copyright © 2011-2022 走看看