Android 65536

#

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

[TOC]

  • 解决方案

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

      1
      2
      3
      4
      5
      6
      7
      8
      9
      android {
      ...
      defaultConfig {
      ...
      multiDexEnabled true//transformDexArchiveWithExternalLibsDexMergerForDebug'
      ...
      }
      ...
      }

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

      1
      2
      3
      4
      5
      6
      7
      8
      android {
      ...
      dexOptions {
      jumboMode true
      javaMaxHeapSize "4g"
      }
      ...
      }

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

      1
      2
      3
      4
      5
      dependencies {
      ...
      implementation 'com.android.support:multidex:1.0.3'
      ...
      }

    4. 修改Application

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      public class YouApplication extends MultiDexApplication {
      ...
      }
      ////////////////////////////////////或者
      public class YouApplication extends Application {
      ...
      @Override
      protected void attachBaseContext(Context base) {
      super.attachBaseContext(base);
      MultiDex.install(this);
      }
      ...
      }

      ```

您的支持将鼓励我继续创作!