Как исправить ошибку «Неразрешенная ссылка» Kotlin при доступе к некоторым методам / константам Android SDK - PullRequest
0 голосов
/ 22 января 2019

У меня был проект Android с Java-кодом и я добавил поддержку Kotlin.Когда я пытаюсь использовать некоторые методы или константы из классов View или Context, я получаю сообщение об ошибке компилятора Kotlin 'Unresolved reference' .Самая странная часть проблемы заключается в том, что я могу успешно использовать View.VISIBLE, но получаю ошибку компилятора при попытке использовать View.SYSTEM_UI_FLAG_FULLSCREEN.

Kotlin, установленный на уровне проекта build.gradle

buildscript {
ext.kotlin_version = "1.3.11"
repositories {
    google()
    maven { url 'https://maven.fabric.io/public' }
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0'
    classpath 'io.fabric.tools:gradle:1.+'
    classpath 'org.slf4j:slf4j-api:1.7.21'
    classpath 'com.github.tony19:logback-android-core:1.1.1-4'
    classpath 'com.github.tony19:logback-android-classic:1.1.1-4'
    classpath 'com.papertrailapp:logback-syslog4j:1.0.0'
    classpath 'com.google.gms:google-services:4.2.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Kotlin настроен на уровне приложения build.gradle.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'

/* other declarations */

dependencies {

/* other dependencies */

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version"
}

Когда я пытаюсь скомпилировать следующий код

fun foo() {
    View.SYSTEM_UI_FLAG_FULLSCREEN
}

Я получаю

Unresolved reference: SYSTEM_UI_FLAG_FULLSCREEN

Но я могу успешно скомпилировать

fun foo() {
    View.VISIBLE
}

Кроме того, я не могу скомпилировать

fun foo(context: Context) {
    context.getExternalFilesDir("Dir")
}

Неразрешенная ссылка: getExternalFilesDir

Спасибо запомощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...