码迷,mamicode.com
首页 > 编程语言 > 详细

Activity调用isDestroyed()方法报出,java.lang.NoSuchMethodError

时间:2015-08-12 13:19:54      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

在测试App的过程中,Activity调用了isDestroyed()方法,报出了java.lang.NoSuchMethodError错误。

自己手机MI 2S,版本4.1.1。

其实原因就是isDestroyed()这个方法是在4.2引入的,所以在4.1.1上调用此方法会报错。

需要做一下版本的判断了,Build.VERSION.SDK_INT < 17。


那么问题来了,如何判断某个函数引入的版本呢?从android开发者网站就可以发现,

其实想在源码里面看到,可是源码里面没有说明。

https://developer.android.com/reference/android/app/Activity.html#isDestroyed()

技术分享


总结:调用方法的时候需要注意几点:

(1)注意此方法引入的API版本号;

(2)最好不要调用@Deprecated标记类和方法之类的,因为第三方可能会删除被@Deprecated标记的源码;

(3)标记@Hide的也最好不要调用,记得初学的时候,蛮多人使用反射的方式获取私有的数据和调用相应的方法,当时觉得还蛮具有研究精神的;


重点:当自己现在站在维护的角度,很多用户在用你的产品,各种不同的手机、型号的出现,导致出现的不同的bug。遵守上述的规则,就显得很有意义了。


附上一些比较好的文章:

精神哥讲Crash(一):UnsatisfiedLinkError

精神哥讲Crash(二): java.lang.NoSuchMethodError

小萝莉说Crash(一):Unrecognized selector sent to instance xxxx



版权声明:本文为博主原创文章,未经博主允许不得转载。

Activity调用isDestroyed()方法报出,java.lang.NoSuchMethodError

标签:

原文地址:http://blog.csdn.net/zhuhai__yizhi/article/details/47442051

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!