首页 > 移动平台 > 详细

Android工程方法数超过65535的解决办法

时间:2017-07-04 12:57:11      阅读:309      评论:0      收藏:0      [点我收藏+]
  • Error:Execution failed for task ‘:ttt:transformClassesWithDexForDebug‘.
    com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

    很不幸,今天被我遇到了,集成了一个Udesk客服功能,导入它的moudle,里面乱七八糟导入了一大堆第三方。作为一个第三方客服,你这样真的好么?

解决方案

  1. Gradle 配置:app的build.gradle中

      android {  
          defaultConfig {  
          applicationId "com.xxx.xxx"  
          minSdkVersion 14  
          targetSdkVersion 21  
    
          multiDexEnabled true  //加上这句话 
          }  
      }
  2. Gradle 配置:app的build.gradle中

      dependencies {  
          compile ‘com.android.support:multidex:1.0.1‘  
      }
  3. 自己的Application 类重写方法:

      @Override                           
      protected void attachBaseContext(Context base) {  
          super.attachBaseContext(base);  
          MultiDex.install(this);  
      }

    也可以继承android.support.multidex.MultiDexApplication类,不用重写上面方法

  4. 如果你的应用中包含引用的lirary工程或moudle,需要将预编译设置为false:

     android {  
          // ...  
          dexOptions {  
              preDexLibraries = false  
          }  
     }
  5. 当运行时如果看到如下错误:

    UNEXPECTED TOP-LEVEL ERROR:
    java.lang.OutOfMemoryError: Java heap space

    在dexOptions中有一个字段用来增加java堆内存大小:

      android {  
          // ...  
          dexOptions {  
              javaMaxHeapSize "2g"  
          }  
      }

Android工程方法数超过65535的解决办法

原文:http://www.cnblogs.com/dongweiq/p/7115972.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!