APP集成bugly之后,后台收集到了NoSuchMethodError的报错。bugly上面的说法是:
该异常表示找不到指定方法。这种问题主要是由于Android系统和Rom厂商定制化导致的碎片化问题,很难根治,建议做好机型适配,解决top机型问题:
1.如果是机型相关问题,则看下是否添加了该崩溃机型cpu架构的so库;
2.如果是系统API方法,使用时要注意API Level,如果设置的target version过高,调用低于设置版本的API方法将会报错。
3.setBackground方法在API >= 16才生效
经过调试,发现是在Activity调用isDestroyed()方法报出java.lang.NoSuchMethodError。发生问题的机型是谷歌 NEXUS 4,API16。那么问题就出现在版本上。
NoSuchMethodError
原因就是isDestroyed()这个方法是在4.2引入的,所以在4.1.2上调用此方法会报错。
因此,只需要做一下版本的判断就可以了,Build.VERSION.SDK_INT >= 17。
网友评论