【发布时间】:2018-04-17 20:32:32
【问题描述】:
起初 - 我一直在谷歌上搜索并使用所有我找到的东西。
我的项目级 build.gradle 包含这个
文件根目录
buildscript {
ext.kotlin_version = "1.2.31"
repositories {
google()
jcenter()
}
dependencies {
.....
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
.....
}
}
我的模块级 build.gradle 包含这个
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "iam.thevoid.sudoku"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
}
vectorDrawables.useSupportLibrary = true
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
dataBinding {
enabled = true
}
}
dependencies {
..........
// kotlin
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
.........
}
但我仍然在构建过程中不断收到错误
e: \pages\BaseActivity.kt: (16, 9): Unresolved reference: window
e: \pages\GameActivity.kt: (37, 21): Unresolved reference: startActivity
e: \pages\MenuActivity.kt: (30, 21): Unresolved reference: startActivity
e: \util\FileUtil.kt: (19, 31): Unresolved reference: assets
e: \util\FileUtil.kt: (21, 51): Unresolved reference: it
e: \viewmodel\MenuViewModel.kt: (42, 70): Unresolved reference: finish
如您所见 - 有简单的引用,如“startActivity”或“finish”。为什么kotlin不能解决?
当我更新了一些我不记得的东西时,我开始遇到这些错误。也许它是一个 kotlin 插件版本,可能有一个 gradle 或 gradle 插件,但我尝试降级这个插件并且不返回工作版本的项目。
你能帮忙吗?
【问题讨论】:
-
首先,在模块级 build.gradle 中检查您的 android 依赖项。您是否更新了构建工具?您安装了哪个构建工具版本,哪个版本在 build.gradle 的
android块中声明? -
在 Android Studio 中按照红色下划线打开上述文件。你在扩展 AppCompatActivity 吗?是否忘记添加对支持库的依赖?
-
@EugenPechanec 项目中的所有依赖项,活动为 AppCompatActivity。有趣的事实是,在我更新 gradle 文件之前,所有这些代码都可以工作,但是当我尝试全部降级时 - 错误并没有消失
-
@jelic98 我在 Q 中添加了 'android' 块。如您所见 - 构建工具、sdk 版本和其他都是最新的
-
支持库依赖在哪里?
标签: android kotlin build-error