Android Studio更新后无法解析符号“ NonNull”

And*_* Z. 13 android gradle android-studio android-gradle-plugin

我最近更新了Android Studio。之后,似乎不再能够解析某些支持注释,例如@NonNull@Nullable。在更新之前,它确实工作正常。但是,所有内容仍在编译中,并且能够执行Code,但仍显示导入时符号无法解析的消息。

到目前为止,我已经尝试过:

  1. 在build.gradle中包含依赖项(模块:应用程序):

    compile 'com.android.support:support-annotations:27.0.0'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我已使缓存无效并重新启动
  3. 清理和重建项目
  4. (编辑)同步摇篮

我不知道为什么这不起作用,非常感谢您的帮助。

小智 13

从android api 29('targetSdkVersion'29)开始,com.android.support已移至“ androidx”库。

在您的build.gradle文件(应用级别)中,依赖项会阻止使用...

dependencies{ 
    ...
    implementation 'androidx.annotation:annotation:1.1.0' 
}
Run Code Online (Sandbox Code Playgroud)

并在.java文件中使用import,如下所示:

import androidx.annotation.NonNull;
Run Code Online (Sandbox Code Playgroud)

再次构建您的项目!

  • 让我觉得 Android SDK 供应商希望开发人员每天构建他们的代码并确保它仍然可以构建而不会出现错误。说真的,几个月前成功构建的代码现在停止构建了。不管怎样,谢谢你的帮助。 (3认同)

小智 7

我最近在一个库导入中遇到了类似的问题,为了解决这个问题,我必须有机会导入语句,如下所示:

必须在两次导入后进行更改。

从:

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
Run Code Online (Sandbox Code Playgroud)

到:

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
Run Code Online (Sandbox Code Playgroud)


Sco*_*ggs 5

同样的事情发生在我身上。我被困了很长一段时间——为了让 Android Studio 保持最新状态而对某人玩真是太糟糕了。简单地重建项目甚至还没有接近工作。

显然,对 gradle 进行了一些更改,以防止旧程序正确编译。

我必须创建一个新项目并将我的所有文件复制到新项目中。是的,它会咬大毛绿色的,但这是我必须做的才能让它工作。

我希望有人想出比这更好的答案!(我很想和做出这个改变的白痴“谈谈”几分钟!这不是第一次发生这种情况——也不是第二次、第三次、第四次等等。)

!!!新信息!!!

刚刚开始一个新项目,然后又发生了。它正在使用主/设计模板。是的,正如 Android Studio 生成的代码一样,ItemListActivity.java由于 NonNull 未正确导入,其他文件中也存在错误。

Sooooo,我去了应用程序 build.gradle 文件并查看了所有依赖项警告。为什么项目生成器使用旧的依赖项?嗯。所以我更新了所有依赖项以使用最新的。“立即同步。” 哇,它奏效了!

以下是我更新的行:

implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
Run Code Online (Sandbox Code Playgroud)

当然,您必须更改数字以反映当前版本。

再一次,令人难以置信的是,开箱即用的模板中存在如此明显的错误。总有一天我会去山景城旅行,把一些鞋带系在一起。


小智 1

转到构建 --> 重建项目。AS 也会刷新 Gradle 依赖项和您的项目。