java.lang.NoSuchMethodError的一种可能
2014-02-08 11:59
351 查看
原因:
新老版本并存,而老版本的jar包路径还在classpath中,并且在 新版本的前面,程序调用新方法,编译没问题,但运行时会先去找旧的classes,而旧的classes中不含此方法,故报 NoSuchMethodError错误,而且这个还不是异常,捕获不了,不好找原因。
另外新旧版本并存,老版本在前,运行时调用的方法名相同,但内容变了,这时就不是报Error了,而是可能报各种稀奇古怪的异常。
解决办法://获得但前使用的sdk版本号
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
//当前sdk版本号小于存在setBackground()方法的sdk的版本号
setBackgroundDrawable(); } else { setBackground(); }
相关文章推荐
- java.lang.NoSuchMethodError: org.hibernate.engine.jdbc.spi.JdbcServices.getConnectionProvider()异常分析
- java.lang.NoSuchMethodError:org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session
- HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoSuchMethodError:
- java.lang.NoSuchMethodError
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 解决方法
- java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.makeAccessible(Ljava/lang/refl
- java.lang.NoSuchMethodError: main Exception in thread "main"
- 20140429java.lang.NoSuchMethodError com.sun.mail.util.TraceInputStream
- java.lang.NoSuchMethodError: android.graphics.Canvas.drawRoundRect java.lang.NoSuchMethodError: andr
- java.lang.NoSuchMethodError: org.json.JSONArray.remove
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I问题解决及总结。
- nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonGenerator.writeStart
- java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplemen
- java.lang.NoSuchMethodError: javax.wsdl.xml.WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition;
- java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$;
- Invocation of init method failed; nested exception is java.lang.NoSuchMethodError:
- groovy servlet java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I
- JNI GetMethodID called with pending exception java.lang.NoSuchMethodError
- java.lang.NoSuchMethodError: org.springframework.core.io.ResourceEditor错误
- java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOGS.getInstance