Closed Matcha-xiaobin closed 6 months ago
看看 build.gradle.kts 中你对 sqllin-processor 的依赖
因为用不了,暂时先注释掉了
用sql语句建表是指什么?文档中并未详细说明,所以我不太明白 @qiaoyuang
SQL 语句建表那个忽略,我刚才看错了。其实你的问题是 KSP 生成的 Table 对象找不到,我现在在火车上不方便,等明天我给你看下。
好的,顺便有劳大佬看下这个问题: 不知道如何解决
这个问题跟 SQLlin 无关吧?只有这些报错信息我也不知道该如何解决。你可以在 YouTrack 上搜索相关关键字或者提问,JetBrains 官方的人应该可以帮助你。
这个问题跟 SQLlin 无关吧?只有这些报错信息我也不知道该如何解决。你可以在 YouTrack 上搜索相关关键字或者提问,JetBrains 官方的人应该可以帮助你。
因为我这边看了下我只是加入了SQLlin 就出现了这个问题,所以就觉得可能是这个导致的,我自己又研究了下,似乎是KSP的问题。先不管这个了,不影响运行。
你检查一下这行代码在不在你的 build.gradle.kts 里:
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
如果在的话,你完整 build 一次看看你的这个路径下有没有 Table 类生成
你检查一下这行代码在不在你的 build.gradle.kts 里:
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
如果在的话,你完整 build 一次看看你的这个路径下有没有 Table 类生成
这行代码在的,但是没有生成ksp这个路径
这是我的相关配置,有劳大佬看下。 sqllin 是 1.2.3,放在了 commonMain 里
ksp我记得我是尝试过1.9.21 版本,结果是一样的
在确保 Kotlin 1.9.21,KSP 版本 1.9.21-1.0.15 的情况下也会出现问题吗?我看你注释掉的 KSP 版本是 1.9.21-1.0.16
在确保 Kotlin 1.9.21,KSP 版本 1.9.21-1.0.15 的情况下也会出现问题吗?我看你注释掉的 KSP 版本是 1.9.21-1.0.16
尝试过1.9.21-1.0.15,没用
那仅从这些信息我已经看不出问题了,你能否提供一个可以复现该问题的最小 demo 工程?
Demo.zip 这是demo,你可以看下
我尝试了以下几处更改,目前已经可以生成 BrowsingHistoryBeanTable
类。具体做法如下你可以尝试:
build.gradle.kts
中添加如下代码(dependencies {}
块下方的代码):// KSP dependencies
dependencies {
// sqllin-processor
add("kspCommonMainMetadata", "com.ctrip.kotlin:sqllin-processor:1.2.3")
}
afterEvaluate { // WORKAROUND: both register() and named() fail – https://github.com/gradle/gradle/issues/9331
tasks {
withType<KotlinCompile<*>> {
if (name != "kspCommonMainKotlinMetadata")
dependsOn("kspCommonMainKotlinMetadata")
}
}
}
第 3 点是由于 Gradle 8.0 后出现了一个问题(问题链接可参照以上代码中的注释),目前社区的解决方案普遍是加以上代码来暂时规避。
我尝试了以下几处更改,目前已经可以生成
BrowsingHistoryBeanTable
类。具体做法如下你可以尝试:
- 所有 Java 版本的设置从 18 改成 17,Java 18 为非长期支持版本,社区生态在支持方面不如长期支持版本。
- sqllin-processor 的版本设置上从 libs 的写法改成直接写数字(我本地用你的写法会 build 报错)
- 在 shared module 的
build.gradle.kts
中添加如下代码(dependencies {}
块下方的代码):// KSP dependencies dependencies { // sqllin-processor add("kspCommonMainMetadata", "com.ctrip.kotlin:sqllin-processor:1.2.3") } afterEvaluate { // WORKAROUND: both register() and named() fail – https://github.com/gradle/gradle/issues/9331 tasks { withType<KotlinCompile<*>> { if (name != "kspCommonMainKotlinMetadata") dependsOn("kspCommonMainKotlinMetadata") } } }
第 3 点是由于 Gradle 8.0 后出现了一个问题(问题链接可参照以上代码中的注释),目前社区的解决方案普遍是加以上代码来暂时规避。
好的,非常感谢,我稍后尝试一下!
@qiaoyuang 试了下,确实可以生成了,感谢!
我仔细按照教程 开始使用 一步一步进行 我给我的实体类加上了DBRow
但是我无法找到这个类对应的表
是什么地方缺少了什么吗?