【问题标题】:Kotlin files not able to use R.javaKotlin 文件无法使用 R.java
【发布时间】:2017-11-21 17:53:39
【问题描述】:

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

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

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

这里有什么问题?

我尝试过的事情:

  • 清理后构建

  • 缓存无效/重启

  • 清除 .gradle 文件夹并重新创建索引

其他信息:

  • AS v3.0.1

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

  • Gradle v4.2.1

  • Gradle 插件 v3.0.0

【问题讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?
  • 您是如何解决您的问题的

标签: android android-studio kotlin build.gradle kotlin-interop


【解决方案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)

【讨论】:

    【解决方案2】:

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

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

    这让 Android Studio 知道 kotlin 目录是一个源 root,所以当项目模型加载到 IDE 中时,它将是 正确识别。或者,您可以将 Kotlin 类放在 Java源码目录,一般位于src/main/java


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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2015-09-09
        • 1970-01-01
        • 2011-08-25
        • 2012-01-11
        • 1970-01-01
        • 2011-04-17
        • 2012-01-26
        • 1970-01-01
        • 2011-01-04
        相关资源
        最近更新 更多