在測试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()

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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

(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的更多相关文章

  1. 调用android的getColor()方法出现 java.lang.NoSuchMethodError: android.content.res.Resources.getColor

    1.java.lang.NoSuchMethodError: android.content.res.Resources.getDrawable/getColor或者 java.lang.NoSuch ...

  2. 记一次使用修改字节码的方法解决java.lang.NoSuchMethodError

    接兔兔国际sdk ane 充值界面选择兔币充值就会闪退, 观察logcat 04-19 10:10:54.224: E/AndroidRuntime(20315): FATAL EXCEPTION: ...

  3. pagehelper调用mybatis报错java.lang.NoSuchMethodError:org.apache.ibatis.reflection.MetaObject.forObject

    最近在升新的基础框架到spring cloud,启动时pagehelper报错,如下: java.lang.NoSuchMethodError:org.apache.ibatis.reflection ...

  4. JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法

    昨天拿到JNI的Android工程Demo,然后把demo整合到开发的主线工程上,发现调用JNI方法一直抛同一个异常 java.lang.UnsatisfiedLinkError: XXXclass. ...

  5. Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法

    使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 ActionContext c ...

  6. 解决方法:java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

    hibernate4.3版本 报错: 把实体注解的声明方式修改一下解决,如: 将 @Entity@Table(name=”table_name”)改为@Entity(name=”table_name” ...

  7. Jmeter--thrift接口压测,调用jar包失败报错:java.lang.NoSuchMethodError:

    调用thrift接口压测的jar包,出现了错误:java.lang.NoSuchMethodError: 错误可能的原因: 有这个类,该类真的没有这个方法 有这个类,而且有好几个,他们之间发生了冲突 ...

  8. redis 集群java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法

      项目中出现如下错误,记录下解决方法: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exce ...

  9. Java程序中使用Spire Jar包报java.lang.NoSuchMethodError类型错误的解决方法

    Jar包功能概述 使用Spire系列的Jar包可以操作Word.Excel.PPT.PDF.Barcode等格式的文件,分别对应使用的jar包是Spire.Doc for Java.Spire.XLS ...

随机推荐

  1. django insert data into mysql

    #!/usr/bin/python # -*- coding:utf-8 -*- # @filename: search # @author:wwx399777 wuweiji # @date: 20 ...

  2. 「 Luogu P2420 」 让我们异或吧

    # 解题思路 两点之间的路径的话一定经过它们两个 LCA,这一点已经是显而易见的,那么再来看看异或的性质. $$a\ xor\ b\ xor\ b = a\\ a\ xor\ a=0\\ a\ xor ...

  3. 洛谷 P3146 248 题解

    https://www.luogu.org/problemnew/show/P3146 区间dp,这次设计的状态和一般的有一定的差异. 这次我们定义$dp[i][j]$表示$[i,j]$的可以合并出来 ...

  4. GIT的简介

    本文来自:https://www.breakyizhan.com/git/32.html 这篇GIT教程提供了GIT的基本和高级概念,主要是面向GIT的初学者和专业人士来编写的. 什么是GIT呢? G ...

  5. 【01】恶趣味玩转 GitHub commit 历史记录

    [黑科技]恶趣味玩转 GitHub commit 历史记录   工具:https://github.com/gelstudios/gitfiti 效果截图:预览地址:https://github.co ...

  6. AI学习笔记(01)

    [1]在Ai中,每个对象有两个属性:填充颜色和描边颜色.   [2]在AI中,非要选中,才操作.而PS中,选中图层即可.   [3]AI中,都是路径.   [4]选择工具是选中整个路径,而直接选择工具 ...

  7. 一些简单的JavaScript的方法

    <script type="text/javascript"> //js跳转 function UserMouserDown() { confirm('你确定要删除吗? ...

  8. linux shell管道和xargs的区别

    如上图,加了xargs的话相当于将上一个操作的结果作为命令执行前的操作,不加的话直接先把后面的命令运行一遍再操作

  9. asp.net mvc数据验证

    文章:asp.net mvc3 的数据验证(一) 文章:ASP.NET MVC下的四种验证编程方式 这个讲了在一个地方展示验证信息 文章:[ASP.NET MVC系列]浅谈数据注解和验证 这个在每个输 ...

  10. Poj3253:Fence Repair 【贪心 堆】

    题目大意:背景大概是个资本家剥削工人剩余价值的故事....有一块木板,要把它切成几个长度,切一次的费用是这整块被切木板的长度,例如将一个长度为21的木板切成2和19两块费用为21,切成两块的长度及顺序 ...