Android 65536

386 阅读1分钟

#

在Android开发过程中,业务的增加会导致项目越来大。此时,很容易遇到65536异常。原因在于——在Android中,一个Dex中存储方法id用的是short类型数据,所以我们的方法总数不能超过64K

[TOC]

  • 解决方案

    1. 在主module的build中加入multiDexEnabled true

      android {
        	...
          defaultConfig {
          	...
              multiDexEnabled true//transformDexArchiveWithExternalLibsDexMergerForDebug'
      	    ...
          }
      	...
      }
      

    2. 在主module的build中加入dexOptions{}

      android {
        	...
          dexOptions {
              jumboMode true
              javaMaxHeapSize "4g"
          }
      	...
      }
      

    3. 在主module的build中依赖com.android.support:multidex:version

      dependencies {
      	...
          implementation 'com.android.support:multidex:1.0.3'
          ...
          }
      

    4. 修改Application

      public class YouApplication extends MultiDexApplication {
        ...
      }
      ////////////////////////////////////或者
      public class YouApplication extends Application {
      	...
         @Override
          protected void attachBaseContext(Context base) {
              super.attachBaseContext(base);
              MultiDex.install(this);
          }
          ...
      }
      

      ```