Android Studio中onCreate执行SQL时抛出NoSuchMethodException异常求助
perfIOPrefetchStart NoSuchMethodException异常 嘿,这个异常确实有点让人摸不着头脑对吧?别慌,先给你吃个定心丸:这个异常大概率不是你的SQL代码直接导致的——它是和Android系统的性能监控调试工具相关的问题,只是刚好在你执行SQL的时候触发了。下面给你几个具体的解决步骤:
先排查你的SQL语句是否正确
虽然这个异常不是SQL直接引发的,但还是要先确保CREATE_TABLE_FILTER、CREATE_TABLE_PRODUCT这些常量里的SQL语法没问题:比如有没有遗漏分号、字段定义是否合法、表名/字段名有没有拼写错误,插入数据的语句是否符合SQLite规范。可以把这些SQL字符串用Log.d打印出来,复制到SQLite工具里验证一下语法。关闭Android Studio的高级性能监控选项
这个perfIOPrefetchStart是系统IO性能预取相关的调试方法,有时候Android Studio的高级 profiling 功能会触发这个异常:- 打开Run/Debug配置(点击工具栏的运行下拉框,选择Edit Configurations)
- 找到你当前的应用配置,切换到「Advanced」标签页
- 取消勾选「Enable advanced profiling」选项,然后重新运行调试
清理Android Studio缓存并重启
有时候IDE的缓存会导致各种奇怪的调试问题,执行File -> Invalidate Caches... -> 选择Invalidate and Restart,等IDE重启后再试试调试。检查你的DB_Helper类签名
确保你的DB_Helper正确继承了SQLiteOpenHelper,并且onCreate方法的签名完全正确:@Override public void onCreate(SQLiteDatabase database) { // 你的SQL执行代码 }不要写错方法名、参数类型或者返回值哦。
如果以上方法都试过还是不行,可以试试换真机调试(如果之前用的是模拟器),或者把Android Studio更新到最新稳定版本——旧版本的调试工具偶尔会出现这类兼容性问题。
内容的提问来源于stack exchange,提问作者Dhirish

