今天打包时,发现2.3机器,产生的APK在某些机器上不能安装(Installation error: INSTALL_FAILED_DEXOPT),针对这个问题的一个可能解释是:最新的ADT和SDK Tool在将jar转化成dex的时候,可能会合并类的代码,这将导致巨大的类;类中的每一个方法都分配有一个id,字节码中以id标识和调用方法;早期的Dalvik VM内部使用short类型变量来标识方法的id,最大值限制在65535;综合上述因素,代码在安装的时候,不能通过验证,所以安装失败。

  我们的项目因为代码里引入了过多的开源library,所以导致方法数过多,最后只能精简代码,删除不必要的library来解决这个问题。
      最新的Android已经解决了这个问题,但是更早的Android版本可能仍然存在此问题。
      因此,由于大量遗留机器的存在,这个问题是不能彻底解决的,一个临时的解决方案是:删掉没有实际使用的代码,或者使用ProGuard处理代码(可以减小代码体积)。
      一个不幸的推论是:随着一个软件功能的增加,代码的膨胀,APK包终将超出可以处理的范围,也许就是8M(指APK包里面的classes.dex).
      与此问题相关的两个讨论组是:
      https://code.google.com/p/android/issues/detail?id=40409
      https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/tuLXN9GkVas

  目前2.3版本市场只有20%了,希望这个占有率快速下降吧!

最新文章

  1. swift初体验
  2. csipsimple,linphone,webrtc比较
  3. jQuery最佳实践(不断更新中...)
  4. mac下xampp简单虚拟主机配置
  5. [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题
  6. P1026 犁田机器人
  7. 整合maven,jetty,jrebel进行debug调试
  8. openStack云平台虚拟桌面galera mysql 3节点集群实例实战
  9. 使用CCUserDefault 推断用户是否是第一次登陆系统及UserDefault全路径的获取
  10. (8) Xamarin使用Jar檔
  11. iPhone6 AirDrop找不到我的mac解决方法!注销mac和iPhone的icloud账号
  12. Python3.2.3官方文档(中文版)
  13. 用turtle库实现汉诺塔问题~~~~~
  14. 洛谷P4065 [JXOI2017]颜色(线段树)
  15. day12-13 文件操作b模式
  16. [LeetCode] 112. Path Sum ☆(二叉树是否有一条路径的sum等于给定的数)
  17. WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached
  18. 【javascript】js中的函数节流和函数防抖
  19. Servlet / Tomcat / Spring 之间的关系
  20. selenium+python自动化87-Chrome浏览器静默模式启动(headless)

热门文章

  1. Sublime Text 3的安装,卸载,更新,激活
  2. 使用MSF生成木马_入侵Windows
  3. OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Hangfire使用
  4. 【luogu T24743 [愚人节题目5]永世隔绝的理想乡】 题解
  5. Storm 出现 no jzmq in java.library.path
  6. Python基础—12-面向对象(02)
  7. C#实现文件上传以及文件下载
  8. Qt数据库编程1
  9. python实现简单决策树(信息增益)——基于周志华的西瓜书数据
  10. STM32(7)——通用定时器PWM输出