5

我在相应的资源文件夹中创建了一个新的布局文件。同步后,当我尝试引用布局文件时,即 R.layout.activity_test,R 是“未解析符号”。当我尝试在 AS 中构建时,它失败了。

有趣的是,如果我手动导入 R 文件并在代码中使用它,当我尝试在命令行上构建时,它可以工作。另一件事是当我尝试在 Java 文件中使用 R 访问布局文件时,它也可以工作。所以我知道正在生成 R.java。

我尝试创建一个全新的项目,并且可以在 Kotlin 文件中访问 R。

这里有什么问题?

我尝试过的事情:

  • 清洁然后建造

  • 无效的缓存/重新启动

  • 吹走 .gradle 文件夹并重新创建索引

其他信息:

  • 作为 v3.0.1

  • 尝试了 Kotlin v1.1.2-4 和 v1.1.60

  • Gradle v4.2.1

  • Gradle 插件 v3.0.0

4

3 回答 3

1

无效缓存/重新启动对我有用。

Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
C:/Users/R3ZA/.gradle/caches/modules-2/files-2.1/me.eugeniomarletti.kotlin.metadata/kotlin-compiler-lite/1.0.3-k-1.2.40/a16e967c276379eaf6e1fa03af77664f003db947/kotlin-compiler-lite-1.0.3-k-1.2.40.jar (version 1.2)
C:/Users/R3ZA/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.20/eb2a232734e09fcd1b958a5c7520a93c6de38b32/kotlin-stdlib-1.3.20.jar (version 1.3)
C:/Users/R3ZA/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.20/7d7934e26ce34da1a0a8d00e38038d7cf3375e89/kotlin-stdlib-common-1.3.20.jar (version 1.3)
于 2019-01-25T16:58:11.553 回答
0

在应用程序模块的android部分下添加以下内容:

android {
  ...
  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
  }
}

这让 Android Studio 知道 kotlin 目录是源根目录,因此当项目模型加载到 IDE 中时,它将被正确识别。或者,您可以将 Kotlin 类放在 Java 源目录中,通常位于src/main/java.


https://kotlinlang.org/docs/reference/using-gradle.html#android-studio

于 2018-07-07T07:14:07.550 回答
0

如果您的项目中有警告,请修复它。就我而言,我的 Gradle 版本有一个版本编译警告。该应用程序运行良好,但 R 类未被识别,因此我更改了 gradle 版本并修复了警告,一切正常。

于 2018-10-02T21:57:31.193 回答