You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Java模块运行时找不到org.sqlite.JDBC类求助

排查JDBC类找不到的思路(ClassNotFoundException: org.sqlite.JDBC)

我来帮你梳理下这个问题的排查方向,结合你提到的Android Studio里maintain模块的场景,一步步拆解:

  • 检查依赖配置的范围是否正确
    你提到maintain模块用的是java插件,首先看SQLite JDBC的依赖声明:如果用了compileOnly,那这个依赖只会在编译时生效,运行时不会被加入类路径,自然会找不到类。应该改成implementation或者runtimeOnly(后者更贴合你不想把依赖打包进主应用的需求,同时能保证模块单独运行时的依赖可用)。
    比如正确的依赖声明示例:

    dependencies {
        runtimeOnly 'org.xerial:sqlite-jdbc:3.45.2.0' // 替换成你实际使用的版本
    }
    
  • 验证依赖是否真的被引入
    执行Gradle命令查看maintain模块的依赖树,确认SQLite JDBC是否存在:

    ./gradlew maintain:dependencies
    

    搜索org.sqlite:sqlite-jdbc,看看它是否出现在runtimeClasspath节点下,如果看不到,说明依赖没有被正确拉取,可能是仓库配置缺失(比如没添加Maven Central),或者依赖坐标写错了。

  • 检查运行配置的类路径
    在Android Studio的「Run/Debug Configurations」里,找到你运行maintain模块main方法的配置,切换到「Classpath」标签,确认SQLite JDBC的jar包是否在类路径列表里。如果没有,点击「Add JARs or directories」手动添加,或者重新同步Gradle让配置生效。

  • 确认运行的是maintain模块的独立配置
    因为你不想把这个模块打包进主应用,要确保你运行的是maintain模块本身的运行配置,而不是主应用的配置。主应用的类路径里没有这个依赖(你没打包进去),如果选错了运行目标,自然会触发类找不到的报错。

  • 对比成功项目的配置差异
    你说在另一款应用里成功实现了类似的模块,把两个项目的maintain模块Gradle配置、运行配置做对比,看看有没有差异:比如Gradle版本、插件版本、依赖声明方式、仓库配置等,大概率能定位出问题所在。

  • 排查类名和依赖版本问题
    虽然报错明确指向org.sqlite.JDBC,但还是确认下依赖版本是否兼容:比如某些极旧版本的SQLite JDBC类名可能有变化?尽量使用稳定的最新版本,避免版本兼容问题。

补充:如果是在运行时动态加载JDBC驱动,还要确认Class.forName("org.sqlite.JDBC")的代码有没有拼写错误,不过从报错来看,核心问题还是类不在类路径里,优先排查上面的点即可。

内容的提问来源于stack exchange,提问作者mcfly soft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:27:59