博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 方法数超过64k、编译OOM、编译过慢解决方案。
阅读量:7214 次
发布时间:2019-06-29

本文共 1789 字,大约阅读时间需要 5 分钟。

 目前将项目中的leancloud的即时通讯改为环信的即时通讯。当引入easeui的时候 出现方法数超过上限的问题。

 搜索一下问题,解决方法很简单。

 这里简单记录一下,顺序记录一下此解决方案导致的另一个问题。

 

 一、解决方法数超过64k的问题

 问题描述:

Error:The number of method references in a .dex file cannot exceed 64K.Error:Execution failed for task ':app:transformClassesWithDexForRelease'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException:            java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:

 解决方案:

 1、app目录下 build.gradle 

dependencies {       .....         compile 'com.android.support:multidex:1.0.1'    }

 

 2、在 defaultConfig 中添加

defaultConfig {        applicationId "com.maiji.magkaredoctor"        minSdkVersion 15        targetSdkVersion 25        versionCode 1        versionName "1.0"        multiDexEnabled true    }

 

 3、在自己的写的继承Application的类中中添加方法

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

  

 二、编译OOM的问题

 引入环信的easeui,导致编译速度突然变慢,而且编译经常OOM

  

 

 查询了很多方法,测试都没有解决问题。最终解决办法

 app目录下的build.gradle文件的android{} 中添加

dexOptions {        incremental true        javaMaxHeapSize "4g"    }

  

  另外一个提高编译速度的方法:

  在app目录下的build.gradle文件的android{}中添加

tasks.whenTaskAdded { task ->        if (task.name.contains("lint")                || task.name == "clean"                || task.name.contains("Aidl")                || task.name.contains("mockableAndroidJar")                || task.name.contains("UnitTest")                || task.name.contains("AndroidTest")                || task.name.contains("Ndk")                || task.name.contains("Jni")        ) {            task.enabled = false        }    }

  注意,这里是取消这些任务,比如你项目中用到了Ndk,那你就别写 task.name.contains("Ndk") 了。

  切记:项目第一次编译的时候不要加这段代码,当第一次编译完之后再加,否则会出问题。

 

 

转载地址:http://ekyym.baihongyu.com/

你可能感兴趣的文章
把一个Cisco路由器配置为帧中继交换机
查看>>
利用visual VM 分析统计单词频率程序
查看>>
SQL去重复查询
查看>>
OC 属性,点语法
查看>>
SMS设计之我见
查看>>
想要走的路
查看>>
Excel 冻结横格、纵格
查看>>
RHEL5——DNS服务器的搭建
查看>>
服务器简介
查看>>
hibernate主键生成策略
查看>>
大容量分区命令parted
查看>>
从输入 URL 到页面加载完成的过程中都发生了什么事情?
查看>>
实例讲解JQuery中this和$(this)区别
查看>>
centos 7 静态ip地址模板
查看>>
影响系统性能的20个瓶颈
查看>>
shell的详细介绍和编程(上)
查看>>
超市找零简单算法
查看>>
Qt多线程程序设计
查看>>
allowScriptAccess(JS和Flash跨域的互相调用解析)
查看>>
FreeRADIUS 测试环境搭建
查看>>