android 方法数超过65k,解决dex方法数超过65536

最近有朋友在问我,为什么我就加了一个类/一个库突然跑不起来了。

排查方式:

1、确认你的代码/引用没有问题
2、检查是否是65k问题

今天主要是解决 排查方式2的步骤,这个原因主要是因为你的apk包方法数过大。

现在解决这个已经很方便了:

方式一(繁琐):程序分包,这个比较繁琐;需要对jvm加载Class的方式有足够的了解
方式二(快速,使用AS):

    1、使用google提供的分包库
    implementation ‘com.android.support:multidex:1.0.2‘
    implementation ‘com.android.support:multidex-instrumentation:1.0.2‘

    2、在主项目的build.gradle文件里设置 multiDexEnabled true

    3、如果项目有自定义的Application类,那就在它的onCreate方法里加入  MultiDex.install(this);

    4、如果3不满足,你需要在主项目的manifest文件里添加application标签的name属性为:
    android.support.multidex.MultiDexApplication

原文地址:http://blog.51cto.com/12539515/2104752

时间: 2024-10-12 13:34:53

android 方法数超过65k,解决dex方法数超过65536的相关文章

彻底解决Android 应用方法数不能超过65K的问题

尊重原创 :http://blog.csdn.net/yuanzeyao/article/details/41809423 作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常: Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536 可能有些同学会说,解决这个问题很简单,我们

解决Android 应用方法数不能超过65K的问题

作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常: Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536 可能有些同学会说,解决这个问题很简单,我们只需要在Project.proterty中配置一句话就Ok啦, dex.force.jumbo=true 是的,加入了这句话

安卓应用方法数超过64k解决办法:分割Dex

你的安卓项目功能很强大,对接了好多第三方开源库,项目越做越完善,代码越敲越爽.可是突然有一天报异常了. 错误:The number of method references in a .dex file cannot exceed 64K. 编译器提醒你,你的项目方法数超过64k了. AndroidStudio会提醒你: Learn how to resolve this issue at https://developer.android.com/tools/building/multidex

解决Android单个dex文件不能超过65536个方法问题

当我们的项目代码过大时,编译运行时会报Unable to execute dex: method ID not in[0, 0xffff]: 65536)错误.当出现这个错误时说明你本身自己的工程代码中含有的太多的方法,或者你的工程lib文件夹下引用的第三方插件jar包有太多的方法,这两者的方法加起来已经超过了65536这个数目.而谷歌规定单个dex文件中的方法不能超过65536的限制. 那么这个时候,我们就需要分包处理解决.一般情况下的解决方案就是把整个项目工程包括jar,区分开来分解成两个d

Android Developer:构建超过65K方法的App

Android App的大小随着Android平台持续增长.当你的应用程序和它引用的库达到某个大小,你会遇见预示你的App已经达到Android应用构建架构极限的构建错误.早期版本的构建系统报告如下错误: Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 最近版本的Android构建系统显示一个不同的错误,他指示这同样的问题: trouble writing

Android内存泄漏查找和解决

Android内存泄漏查找和解决 目录: 内存泄漏的概念 一个内存泄漏的例子 Java中"失效"的private修饰符 回头看内存泄漏例子泄漏的重点 强引用与弱引用 解决内部类的内存泄漏 Context造成的泄漏 使用LeakCanary工具查找内存泄漏 总结 一.内存泄漏概念 1.什么是内存泄漏? 用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元.直到程序结束.即所谓的内存泄漏. 其实说白了就是该内存空间使用完毕之后未回收 2.内存泄漏会导致的问题 内

[Android学习笔记]Unable to execute dex Multiple dex files define:xxxx 问题

不同情况可能会出现这个问题,我遇到的问题是: 引入的多个jar包中,其中可能是第三方的SDK,但是其中可能使用了比较流行的开源框架,此时你项目中就有两套包名一样的代码,编译没问题,部署到手机之后就报如上错误 解决办法是: 把第三方jar包包含的开源代码删掉即可 比如: 项目中使用了android-async-http.jar , 同时引入 xxxxx.sdk.jar , 而由于xxxxx.sdk.jar中也引入了android-async-http.jar所以出现以上错误 解决步骤: 1.修改x

曾经紧追喺方荡身后,要将方荡变成自己牙罅之中嘅

烂毒滩地之中嘅重重变异怪兽,仲有各种好肚饿火奴狗狗,都曾经紧追喺方荡身后,要将方荡变成自己牙罅之中嘅嘢食.冇嚟过烂毒滩地,冇真正见过呢度嘅荒凉凶残,就永远唔可能知,一个啱啱出世几个月仔,系点艰难嘅存活落嚟嘅.所以,对于畀追赶,方荡有住太多嘅经验,有住太多嘅对策,可以讲,趯更,对于方荡嚟讲,过食饭重要熟. http://bbs.elecfans.com/user/3348310/ 海中涌起嘅大浪,朝住方荡拍击过嚟,只要追上方荡,细仔一押,方荡就将畀吞没跌.方荡嘅速度再快,耐力再好,经验再丰富,都终

Android应用插件式开发解决方法

Android应用插件式开发解决方法 一.现实需求描述 一般的,一个Android应用在开发到了一定阶段以后,功能模块将会越来越多,APK安装包也越来越大,用户在使用过程中也没有办法选择性的加载自己需要的功能模块.此时可能就需要考虑如何分拆整个应用了. 二.解决方案提出 一般有两种方式,一种是将应用按照功能分拆成多个应用,用户需要哪个就下载哪个,都需要就都下载.应用之间,可以在代码层面做一定的关联,以共享部分信息.另一种方式,类似于其他平台插件的方式,用户可以在主应用中可以选择性的下载需要的插件