U8SDK——部分渠道启动NoClassFoundException(null)

作者: 分类: U8SDK 发布时间: 2015-06-05 13:01 62条评论

在SDKTools.java中的getMetaData方法中,将原来的

改为

如果你里面还有一个application对应的方法,也一并改一下:

改为

为啥要加这个判断呢?因为原来不加的话,如果这个key不存在,那么直接返回的是一个null字符串。而不是null。

这样就会有一个问题,就如如果某个渠道SDK没有要求Application中处理一些事情,采用之前u8sdk的方案,也就是没有在sdk_manifest.xml中的applicationConfig节点中配置proxyApplication属性。

那么,程序运行的时候,在U8Application去根据U8_PROXY_APPLICATION这个key去meta-data中获取的时候,是不存在的。而用之前的getMetaData方法,如果不存在的话,返回的是一个null字符串,而不是null。会导致attachBaseContext中去获取proxyApplication的时候,proxyAppName实际上的值是”null”从而,if判断是无效的~最后启动的时候会抛出 NoClassFoundException(null)异常信息。

虽然这个异常不会有啥问题,但是部分机型上,可能会导致闪退。

感谢@long.同学发现这个BUG

本文出自 U8SDK技术博客,转载时请注明出处及相应链接。

本文永久链接: http://www.uustory.com/?p=1795

评论功能已经关闭,请加入U8SDK技术群进行讨论和咨询:207609068
Ɣ回顶部
U8SDK技术群 x
技术同学请加入
点击加入