一、问题描述
前几天看到过一篇在App Inspection中实时查看SQLite数据库的文章(链接忘记了),昨天我正好在写操作数据库的代码,在测试的时候需要了解数据库的情况,就尝试着在App Inspection中操作了一番,记得当时Android Studio是下载了一些东西的,具体是怎么我也没太在意,总之一番操作后,可以在App Inspection中查看手机里的数据库文件了,执行代码对数据库进行插入或删除后,立即可以在App Inspection中查看到结果,以便确认刚才的操作是否有效,非常的方便。
但是,今天我对代码修改了一番,再次对软件进行测试,在Build时,出现了错误提示:
com/github/gitofleonardo/simplesqlitebrowser/sqlite/ SqliteFileType has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
用百度翻译得到的结果是 :
com/github/gitofleonardo/simplesqlitebrowser/sqlite/SqliteFileType由最新版本的Java Runtime(类文件版本61.0)编译,此版本的Java运行时仅识别55.0以下的类文件版本
二、网上搜解决方法
网上搜索了一番,查到的文章基本都是说Java编译器和Android Studio之间的不兼容性引起的,有些文章指出了55.0对应的java JKD版本是11(这是我使用的Android Studio的默认的java版本),而61.0对应的java JKD版本是17。给出的方案是升级JDK版本。
我照着下载了17版的JDK并设置,然后再次对软件进行Build,可还是同样的问题。
之后又照着其他的文章所说,将模块的build.gradle文件中的 JavaVersion也都改成了17版。但还是不行。
我的项目文件下有多个模块,我在尝试中,对其他没有改动,且之前能正常运行的模块也进行build,发现同样出现错误。而那些模块没有对SQLite数据库进行读写操作的代码,从这一情况来说,不是模块的为,而是整个项目的问题。
三、最终解决问题的办法
结合网上搜索到的一些资料分析,问题就出在com/github/gitofleonardo/simplesqlitebrowser/sqlite/SqliteFileType 上。看到这一串字符串中出现的“simplesqlitebrowser”字样时,我感觉和我昨天使用App Inspection时软件自动下载的文件有关系。那这些文件在哪里呢,我尝试着到处找,在漫无目的的搜寻了一阵后,最终在plugins中找到了罪魁祸首“SimpleSqliteBrowser”插件。我先尝试将这个插件禁用。再次对软件进行build,这次成功了。
这个插件由于不是我主动安装的,因此一开始我并不知道软件给我的电脑上安装了新的插件,导致花费很多冤枉时间去尝试解决问题。但这个插件我是不敢再用了,特此记录一下。
这个插件的链接: