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

时间:2018-05-22 14:40:37

标签: android android-studio gradle android-gradle

我最近更新了Android Studio。之后,它似乎无法再解析某些支持注释,例如@NonNull@Nullable。在更新之前它确实工作得很好。但是,一切仍然在编译,我能够执行代码,但仍然显示我的导入时无法解析符号的消息。

到目前为止我已尝试过:

  1. 在build.gradle中包含依赖项(Module:Application):

    compile 'com.android.support:support-annotations:27.0.0'
    
  2. 我已将Caches无效并重新启动
  3. 清理和重建项目
  4. (编辑)Synched Gradle
  5. 我不知道为什么这不起作用,非常感谢你的帮助。

7 个答案:

答案 0 :(得分:3)

我最近一次导入库时遇到了类似的问题,并且要解决此问题,我不得不有机会让导入以下语句:

两次导入后必须更改。

发件人:

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

收件人:

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

答案 1 :(得分:2)

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

答案 2 :(得分:1)

从android api 29('targetSdkVersion'29)开始,com.android.support已移至“ androidx”库。在您的Build.gradle文件(应用程序级别)中,依赖项会阻止使用...

依赖性{...

实现'androidx.annotation:annotation:1.1.0'}

在.java文件中,按如下方式使用import:

import androidx.annotation.NonNull;

再次构建您的项目!

答案 3 :(得分:0)

我也发生了同样的事情。而且我被困了很长时间-要让Android Studio保持最新状态,对某人玩这个可笑的技巧。而且仅仅重建项目甚至还无法完成。

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

我必须创建一个新项目,然后将所有文件复制到新项目中。是的,它咬住大毛绿色的,但这是我必须要做的,才能使其正常工作。

我希望有人能给出比这更好的答案! (而且我很乐意与进行此更改的白痴“交谈”几分钟!这不是第一次发生这种情况,也不是第二,第三,第四等等)

答案 4 :(得分:0)

包括此错误将纠正错误

void getTime()
{
    auto now = std::chrono::system_clock::now();
    std::time_t date = std::chrono::system_clock::to_time_t(now);
    std::cout << std::ctime(&date);
}
int main()
{
    getTime();
}

答案 5 :(得分:0)

单击红色灯泡图标,然后选择向类路径添加注释。它将解决问题。

答案 6 :(得分:0)

如果您使用的是 Android Studio,请使用 Refactor -> Migrate to AndroidX 选项并执行迁移。