首页 > 其他 > 详细

阿里云推送SDK在某些机型(某米为主)下崩溃问题的解决方法

时间:2017-01-06 15:32:26      阅读:398      评论:0      收藏:0      [点我收藏+]

引言

  最近APP上线,遇到一个比较诡异的问题。最后竟然和dex文件有关,也是醉了,看来还得深入底层学习啊。

问题描述

  在集成阿里推送SDK时,需要在Application中进行初始化,大多数Android手机都是OK的。唯独红米/小米手机在初始化的的时候报错。。。截图如下:

技术分享

  在截图中我们看到,代码在initCloudChannel中发生了异常,异常是NoClassDefFoundError:com.ut.device.UTDevice。看到这些,本能的去看一下jar包有没有引入,发现jar包是引入的,如图:

技术分享

  那这问题就。。。在尝试了各种clean,refresh无效后,只能暂时放一下了。

转机

  晚上回去看书,看到Android工程中方法数目65K的限制,详细介绍如下:

  Android的所有可执行文件都存在dex文件中,其中包含已编译的代码来运行你的应用程序。Dalvik虚拟机对可执行dex文件的规格是有方法限制的,即一个单一的dex文件的方法总数最多为65536,包括:

引用的Android Framework方法、library的方法及编程中写入代码的方法等。

  如果方法数量大于65K,那么编译工程是会生成两个dex文件。APP启动时会依次加载class.dex和class1.dex。

阿里云推送SDK在某些机型(某米为主)下崩溃问题的解决方法

原文:http://www.cnblogs.com/dreamGong/p/6256248.html

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