Android Studio 未解析的引用。项目编译

Android Studio unresolved reference. Project compiles

提问人:Inn0vative1 提问时间:10/15/2018 更新时间:2/6/2020 访问量:36334

问:

升级 Android Studio 后,没有问题的项目开始在编辑器中显示问题。我有很多错误。支持库(support-v4、support-v7)下的任何内容。Unresolved Reference

enter image description here

在上面的屏幕截图中,任何显示为红色的内容都无法解析并显示为错误。 我还在使用 Lifecycle 组件和 Room 数据库。他们似乎也有问题。看起来可以找到接口,但找不到类。

例如,在我的一个类中使用 ,Room

android.arch.persistence.room.Database并正确解析,但android.arch.persistence.room.TypeConverters

android.arch.persistence.room.Room并且不要。android.arch.persistence.room.RoomDatabase

enter image description here

注意:该项目在 Android 模拟器和设备上构建和运行良好,没有任何问题。它使用 Android Studio 上的构建按钮构建和运行,没有任何错误。我没有收到任何未找到类的错误。这只是 Android Studio 编辑器中的一个问题。我已经重新启动了Android Studio,清理并重建了项目。

这是我的项目构建文件:

buildscript {
  ext.kotlin_version = '1.2.70'
  ext.serialization_version = '0.6.2'
  ext.gradle_plugin_version = '3.2.0'

  repositories {
    google()
    jcenter()
    maven { url "https://jitpack.io" }
    maven { url "https://kotlin.bintray.com/kotlinx" }
  }
  dependencies {
    classpath "com.android.tools.build:gradle:3.2.1"
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlinx:kotlinx-gradle-serialization-plugin:$serialization_version"
  }
}

allprojects {
  repositories {
    google()
    jcenter()
    maven { url 'https://jitpack.io' }
    maven { url "https://kotlin.bintray.com/kotlinx" }
  }
}

task clean(type: Delete) {
  delete rootProject.buildDir
}

ext {
  roomVersion = '1.1.1'
  archLifecycleVersion = '1.1.1'
  buildToolsVersion = '28.0.3'
  supportLibVersion = '28.0.0'
}

和模块构建文件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlinx-serialization'

android {
  compileSdkVersion 28

  defaultConfig {
    applicationId "com.example.project"
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    multiDexEnabled true
    kapt {
        arguments {
            arg("room.schemaLocation", "$projectDir/schemas".toString())
        }
    }
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
flavorDimensions 'version'
productFlavors {
    live {
        dimension 'version'
    }
    dev {
        dimension 'version'
        versionNameSuffix '-dev'
    }
}
buildToolsVersion "$rootProject.buildToolsVersion"
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
dataBinding {
    enabled = true
  }
}

kotlin {
  experimental {
    coroutines 'enable'
  }
}



dependencies {
implementation "com.android.support:multidex:1.0.3"
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serialization_version"

// Support and google services
implementation "com.android.support:support-compat:$rootProject.supportLibVersion"
implementation "com.android.support:support-core-utils:$rootProject.supportLibVersion"
implementation "com.android.support:support-core-ui:$rootProject.supportLibVersion"
implementation "com.android.support:support-media-compat:$rootProject.supportLibVersion"
implementation "com.android.support:support-fragment:$rootProject.supportLibVersion"
implementation "com.android.support:design:$rootProject.supportLibVersion"
implementation "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
implementation "com.android.support:gridlayout-v7:$rootProject.supportLibVersion"
implementation "com.android.support:preference-v7:$rootProject.supportLibVersion"
implementation "com.android.support.constraint:constraint-layout:1.1.3"
implementation "com.android.support:support-annotations:$rootProject.supportLibVersion"
implementation "com.android.support:support-vector-drawable:$rootProject.supportLibVersion"
implementation "com.android.support:recyclerview-v7:$rootProject.supportLibVersion"
implementation "com.google.android.gms:play-services-plus:15.0.1"

// Rx
implementation "io.reactivex.rxjava2:rxandroid:2.1.0"
implementation "io.reactivex.rxjava2:rxjava:2.2.2"

// Retrofit
implementation "com.google.code.gson:gson:2.8.5"
implementation "com.squareup.retrofit2:retrofit:2.4.0"
implementation "com.squareup.retrofit2:converter-gson:2.4.0"
implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0"
implementation "com.squareup.okhttp3:logging-interceptor:3.11.0"

// Testing
testImplementation "junit:junit:4.12"
androidTestImplementation "com.android.support.test:runner:1.0.2"
androidTestImplementation "com.android.support.test.espresso:espresso-core:3.0.2"

///---
// java 8
implementation "android.arch.lifecycle:common-java8:$archLifecycleVersion"

// Room components
implementation "android.arch.persistence.room:runtime:$rootProject.roomVersion"
annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"
androidTestImplementation "android.arch.persistence.room:testing:$rootProject.roomVersion"
kapt "android.arch.persistence.room:compiler:$rootProject.roomVersion"

// Lifecycle components
implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
kapt "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"

}
Android-Studio Kotlin 未解析-外部

评论

1赞 Shayan Tabatabaee 10/15/2018
您是否尝试过使缓存失效/重新启动android studio?
0赞 Rahul 10/15/2018
你们的 Gradle 版本是什么?
0赞 Inn0vative1 10/16/2018
重新启动不起作用,下面的答案成功了

答:

35赞 Stanislav Mukhametshin 10/15/2018 #1

我有同样的问题。它与新的AndroidX库及其迁移有关。

尝试 File -> Open -> 并点击 build.gradle 重新打开项目。

评论

3赞 Inn0vative1 10/16/2018
这确实奏效了。太奇怪了,我使用 Build -> Rebuid Project 清理并重建了项目。那没有用。
0赞 IgorGanapolsky 2/21/2019
OP 的问题与 Androidx 有什么关系?
0赞 qkx 2/9/2023
它有效!不知道为什么这个问题在 2023 年仍然发生,即使使用最新的 Android Studio 并且没有任何迁移,只是偶尔完全随机。重建或清理项目不起作用,您必须重新打开项目。奇怪。。。AS 中有很多错误。
5赞 Nitin Patel 6/25/2019 #2

我同意斯坦尼斯拉夫·穆哈梅申(Stanislav Mukhametshin)的观点,这可能与新的AndroidX库及其迁移有关。我已经清理并重建了项目,但没有用。所以,我尝试了这种方式,错误就消失了。

1) 转到并关闭项目File

2) 重新打开同一项目。

2赞 Muzammil 10/23/2019 #3

简单的解决方案是:

1:转到文件并关闭项目。

2:然后转到文件,然后单击“打开最近”并打开您的项目。

这个技巧对我有用。

7赞 Arashjit Singh 2/6/2020 #4

请从 app 目录中删除 .idea 和 .gradle 项目,然后 Invalidate 和 Cache 重新启动 Android Studio。 这将解决此问题。

评论

1赞 Jason Capriotti 4/1/2021
简单地重新加载项目对我不起作用;删除 和 目录确实有效!.idea.gradle
0赞 Sylven 11/27/2023 #5

我遇到了同样的问题,一个无法被识别为 Kotlin 的文件,并且依赖于它的文件显示错误。 项目编译成功。

我尝试了此处发布的所有解决方案以及“将项目与 Gradle 文件同步”。没有一个对我有用。

我在Android Studio中通过执行以下操作覆盖文件类型来解决它:

  1. 右键单击该文件,然后选择“覆盖文件类型”。
  2. 选择文件类型> Kotlin(在我的情况下)。

希望它对某人有所帮助!