我在相应的资源文件夹中创建了一个新的布局文件。同步后,当我尝试引用布局文件,即R.layout.activity_test时,R是一个"未解析的符号"。当我尝试在AS中构建时,它失败了。
有趣的是,如果我手动导入R文件并在代码中使用它,当我尝试在命令行上构建时,它可以工作。另一件事是当我尝试在Java文件中使用R访问布局文件时,这也有效。所以我知道正在生成R.java。
我尝试创建一个全新的项目,R可以在Kotlin文件中访问。
这里有什么问题?
我尝试过的事情:
清理后再建立
无效的缓存/重新启动
吹掉.gradle文件夹并重新创建索引
其他信息:
AS v3.0.1
尝试过Kotlin v1.1.2-4和v1.1.60
Gradle v4.2.1
Gradle Plugin v3.0.0
答案 0 :(得分: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)
答案 1 :(得分: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
答案 2 :(得分:0)
如果您的项目中有警告,请修复它。 就我而言,我的Gradle版本有版本编译警告。 该应用程序运行良好,但未识别R类,因此我更改了gradle版本并修复了警告,并且一切正常。