我最近更新了Android Studio。之后,它似乎无法再解析某些支持注释,例如@NonNull
或@Nullable
。在更新之前它确实工作得很好。但是,一切仍然在编译,我能够执行代码,但仍然显示我的导入时无法解析符号的消息。
到目前为止我已尝试过:
在build.gradle中包含依赖项(Module:Application):
compile 'com.android.support:support-annotations:27.0.0'
我不知道为什么这不起作用,非常感谢你的帮助。
答案 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
选项并执行迁移。