提问人:EvilDuck 提问时间:7/6/2023 最后编辑:EvilDuck 更新时间:7/6/2023 访问量:199
Jetpack Compose 预览 ClassNotFoundException(在 java 模块中定义类时)
Jetpack Compose preview ClassNotFoundException when class is defined in java module
问:
我的应用有一个使用 Jetpack Compose 的模块和另一个带有一些 Java 类的非 Android(纯 Java 库)模块。我遇到了一个问题,如果我使用在普通 Java/Kotlin 模块中定义的类,Jetpack Compose 预览会失败并出现渲染错误,并抛出:
java.lang.ClassNotFoundException: <ClassName> at java.lang.ClassLoader.loadClass at java.lang.ClassLoader.loadClass ...
Java 模块被添加到 Compose 模块的依赖中:
implementation project(':java-common')
一切都在设备上编译和运行。问题仅在预览版中出现。如果我在 Android 库模块中定义相同的类,那么预览也可以,所以我认为问题是该类是在 Java/Kotlin 模块中定义的。下面是库模块的构建文件:
plugins {
id("java-library")
id("org.jetbrains.kotlin.jvm")
}
kotlin {
jvmToolchain(17)
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
我是否在库模块中缺少某些配置?(我真的不想把它变成 Android 模块,因为项目中还有其他一些非 Android 部分使用它)。
我正在将 AS Flamingo 与 AGP 8.0.2 和 Kotlin 1.8.22 一起使用。
答:
0赞
EvilDuck
7/6/2023
#1
最后,在花了一整天的时间挠头之后,通过重新导入项目解决了问题(完全清理,删除 .idea 文件夹)。
评论