如何解决java.lang.NoSuchMethodError:android中没有虚拟方法getTextBounds错误
当我尝试在Android中使用getTextBounds()
类的Paint
方法时,在较旧版本的模拟器(棉花糖和牛轧糖7.1.1)上出现错误。这是错误:
java.lang.NoSuchMethodError: No virtual method getTextBounds(Ljava/lang/CharSequence;IILandroid/graphics/Rect;)V in class Landroid/graphics/Paint; or its super classes (declaration of 'android.graphics.Paint' appears in /system/framework/framework.jar)
该问题似乎未在android 10模拟器上发生。我尝试了使缓存无效并按照另一个答案中的建议重新启动,但是没有用。
解决方法
此方法是Android api 28中引入的-检查here-这意味着该方法在以前的版本中不可用。
这将在运行api 28+的设备上运行,并将在运行较低api级别的设备上抛出该异常。
通常,正确的方法是对版本进行检查:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
// Safe to use getMccString
} else {
// Use something else that could work if there's something
}
请注意,仅因为您可以浏览计算机中的源代码,并不意味着运行您的应用程序的设备将在同一时间运行相同的Android代码-
提及here
,当我使用
ELECT B.periodname,COUNT(A.id)
FROM A JOIN
B
ON A.year >= B.startyear AND A.year < B.endyear
GROUP BY B.periodname
某些设备抛出
Paint.getTextBounds(@NoNull CharSequence text,int start,int end,@NoNull Rect bounds);
替换:
error:java.lang.NoSuchMethodError: No virtual method getTextBounds
有效 希望对你有帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。