You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

KMM报错:“expect与对应的actual声明在同一模块”问题求助

KMM报错:“expect与对应的actual声明在同一模块”问题求助

各位KMM开发者好,我在自己的KMM项目里遇到了一个关于expect/actual语法的问题,卡了好一会儿,想请大家帮忙分析下原因。

先跟大家说下我的项目情况:我只有一个名为app的模块,里面包含了commonMainandroidMainiosMain这三个source set。

我的代码设置:

  1. commonMain 下的 ProfileProvider.kt
interface IProfileProvider {
    val profile: MutableStateFlow<Profile?>
    fun reloadProfile()
}

expect class ProfileProvider: IProfileProvider
  1. androidMain 下的 ProfileProvider.android.kt
actual class ProfileProvider(
    private val authProvider: AuthProvider,
    private val userRepository: UserRepository,
    private val fileRepository: FileRepository,
    defaultDispatcher: CoroutineDispatcher,
    private val context: Context
): IProfileProvider {
    private var _profile = MutableStateFlow<Profile?>(null)
    override val profile = _profile
...
}

遇到的问题:

现在在commonMain里的expect class ProfileProvider: IProfileProvider这一行被标红报错,错误提示是:

ProfileProvider: expect and corresponding actual are declared in the same module

我现在有点困惑:这个错误到底是针对source set还是模块的呢?毕竟我的项目确实只有一个模块,但source set是分开的,按常理expect放在common、actual放在android应该是符合KMM规范的,会不会是我的项目配置哪里出了问题?

希望有经验的朋友能帮忙解惑,谢谢大家!

备注:内容来源于stack exchange,提问作者padmalcom

火山引擎 最新活动