文档章节

Android 方法数65535

 典型人物
发布于 2016/07/20 20:03
字数 418
阅读 14
收藏 0

今天面试的时候面试官问了一个问题是关于方法数超过65535的,本人从来没遇到过结果没答上,回家后果断百度,特此记录。

问题描述:Android项目引入过多的第三方包时,在编译成dex文件的时候,单个dex文件中的方法总数超过了65535个,此时就报错。直白了说就是单个dex文件最多能接受65535个方法。

Google已经描述了这一问题,并且颁布了对应的解决方案。使用Android-support-multidex.jar兼容包来解决。注意:此包只能兼容到api 14,一次4.0一下的系统会有问题。 方案原理:编译时发现方法总数过多时,将生成多个dex文件,这样单个文件的方法总数就不会产生65535的问题。

一,非gradle构建的项目(eclipse开发项目)解决方案: 通常使用eclipse开发,都是使用的adt构建的项目,出现此问题解决方案就是 1 下载Android-support-multidex.jar兼容包。 2 将此兼容包放到libs目录下,并将jar引入过程配置。 3 如果代码有实现了Application的类,则需要将此类继承MultiDexApplication类。如果没有则在AndroidMainfest.xml中加入如下配置。

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest>

二、gradle构建的项目(Android studio默认的构建方式)解决方案 思路基本相同: 1,引入兼容包Android-support-multidex.jar dependencies { compile 'com.android.support:multidex:1.0.0' } 2,配置Application类,或者配置清单文件 详情见:android 官网相关介绍

本文转载自:https://segmentfault.com/n/1330000003998540

共有 人打赏支持
粉丝 0
博文 1
码字总数 0
作品 0
深圳
私信 提问
【android测试】值得学习的android测试知识连接

Android应用程序的debug属性: http://blog.csdn.net/hudashi/article/details/8698142 彻底解决Android 应用方法数不能超过65535的问题 http://blog.csdn.net/yuanzeyao/article/details/418......

beijing_zbs
2014/12/02
0
0
Android 插件化 动态升级

最新内容请见原文:Android 插件化 动态升级 不少朋友私信以及 Android开源交流几个 QQ 群 中都问到这个问题,这里简单介绍下 1、作用 大多数朋友开始接触这个问题是因为 App 爆棚了,方法数...

Trinea
2014/09/19
3.2K
1
eclipse下android项目解决方法数id超过65535

java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 你的应用中的Dex 文件方法数超过了最大值65536的上限,简单来说,应用爆棚了. 那么让我们看一下为什么会引起这种错...

chuxuezhe_
2014/12/10
0
11
手机淘宝Android客户端架构

手机淘宝Android客户端有几百人开发,十几个团队。如果整个Android客户端是一个工程,那十几个团队每个人上午上班第一件事情估计就是合代码,运气不好,一天都在合代码,而且只要有一个人提交...

fneg
2015/07/04
0
8
Multidex记录二:缺陷&解决

个人博客地址 http://dandanlove.com/ Multidex记录一:介绍和使用 Multidex记录二:缺陷&解决 记录Multidex缺陷&解决 为什么要用记录呢,因为我从开始接触Android时我们的项目就在65535的边...

静默加载
2018/10/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Flink 幕后之内存管理

Flink 幕后之内存管理 引言 目前很多大数据处理框架,例如Hadoop、Spark、Storm、Flink等。它们都基于JVM语言开发(java or scala),运行在JVM上。为了加速合并或者排序(基于磁盘的方式通常...

moyiguke
27分钟前
2
0
风起云涌,看云计算如何赋能媒体行业?

在媒体行业的转型升级中,云计算的出现多维度促进了媒体融合,打破传统媒体行业与新媒体的界限和竞争格局,在媒体素材管理、移动端功能演进的过程中扮演着重要角色,颠覆了传统媒体新闻采编、...

七牛云
30分钟前
1
0
Mybatis开发遇到问题汇总

mybatis 中![CDATA[...]] 在今天使用Mybatis的xml文件中写sql语句时写入了一些特殊字符 如 < > & 等,但解析xml文件的时候会被转义,事实上并不希望它被转义,可以使用<![CDATA[ ]]>. 这是XML...

wangwei2134
38分钟前
3
0
参数验证 @Validated 和 @Valid 的区别

来源:blog.csdn.net/qq_27680317/article/details/79970590 整编:Java技术栈(公众号ID:javastack) Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303 规范......

Java技术栈
40分钟前
1
0
JS实现继承的几种方式

前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?让我们拭目以待。 JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: ...

不负好时光
44分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部