【问题标题】:Kotlin KMM 'commonMain' dependencies: Running works, AndroidStudio shows errorsKotlin KMM 'commonMain' 依赖项:运行正常,AndroidStudio 显示错误
【发布时间】:2021-03-23 10:42:53
【问题描述】:

我确实设置了一个 KMM 项目,如下所述:https://kotlinlang.org/docs/mobile/getting-started.html

我想在commonMain 模块中放置一些共享类。这些类需要一些依赖项。所以我添加了这里描述的依赖项:https://kotlinlang.org/docs/mobile/add-dependencies.html#dependency-on-a-library-used-in-specific-source-sets

shared/build.gradle.kts(缩短)

....
kotlin {
    android()
    ios {
        binaries {
            framework {
                baseName = "shared"
            }
        }
    }
    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("org.jetbrains.kotlin:kotlin-reflect:1.4.31")
            }
        }
...
        val androidMain by getting {
            dependencies {
            }
        }
....
        val iosMain by getting
        val iosTest by getting
    }
}
....

所以我创建了这个使用kotlin-reflect 库的InjectManager Helper 类。

问题:

只有当类放在commonMain 中时,AndroidStudio (4.1.3) 才能找到依赖项。当我运行项目时 - 没有错误 - 一切正常。这就是 Android Studio 的看法。 InjectManagerInjectManager2 具有相同的代码。为了能够使用自动完成等。我目前的工作流程是这样的

  1. 将班级移至androidMain
  2. 进行代码更改
  3. 拖放回commonMain

InjectManager2 仅用于在屏幕截图中显示。

【问题讨论】:

    标签: android-studio kotlin kotlin-multiplatform-mobile


    【解决方案1】:

    我有同样的问题。该应用程序构建并运行良好,但在我的 .kt 文件和 commonMain 包中的类中出现了各种错误。我可以通过添加相应的 import 语句来摆脱它们,即使当代码不在共享模块中时它们不是必需的。

    例如一个文件有几个 ArrayList() 实例的错误(未解决的引用),并且在添加 java.util.ArrayList 的导入后错误消失了

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 2020-04-30
      • 1970-01-01
      • 2013-02-19
      • 2023-03-07
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多