Android Navigation Components Error: 'bad operand types for binary operator' in generated file

Android Navigation Components Error: 'bad operand types for binary operator' in generated file

我正在开发一个包含 Android 导航组件的应用程序。生成的构建文件 MyFragmentDirections.java 阻止了应用程序的构建,该文件包含许多类似于以下错误的错误:

error: bad operand types for binary operator '=='
      if (mainItemId == null) {
                     ^
  first type:  int
  second type: <null>
...
error: int cannot be dereferenced
      if (getMainItemId() != null ? !getMainItemId().equals(that.getMainItemId()) : that.getMainItemId() != null) {

我怀疑问题出在我定义的导航参数中:

        <argument
            android:name="mainItemId"
            app:argType="int"/>

我使用 int 而不是 Int 因为我在 Android 上看到的示例开发人员使用 string 而不是 String.

当我引用导航参数时,更改为 Int 会导致我的代码中其他地方出现一组不同的错误:

Type mismatch: inferred type is Int but kotlin.Int was expected

Cannot access class 'Int'. Check your module classpath for missing or conflicting dependencies

任何人都可以解释为什么会发生这种情况并提供解决方案吗?

我的 Gradle 构建文件(模块)的相关部分如下:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-android-extensions'
    id 'androidx.navigation.safeargs.kotlin' // edited see comments 
}
...
dependencies {
    implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1'
    implementation 'androidx.navigation:navigation-ui-ktx:2.4.1'
}

根据 the documentation,整数的 只有 正确 argTypeapp:argType="integer" - 这将使 int在 Java 代码或 kotlin.Int Kotlin 代码中。