【发布时间】:2021-01-31 17:14:11
【问题描述】:
在我的 Flutter 应用程序中,我经常使用 Connectivity plugin 来检查主机设备的当前在线状态。直到最近,这一直工作得很好。但是,在最新的 Flutter 升级版本 1.22.2 中,我发现尝试 flutter run 会出现错误
pathto:\flutter.pub-cache\hosted\pub.dartlang.org\connectivity-0.4.9+5\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityBroadcastReceiver.java:16:错误:找不到符号 导入androidx.annotation.RequiresApi
然后
^
需要Api
我不明白为什么会这样。 AndroidX developer docs 肯定会谈到这个类。我应该提一下,我指定 minSdkVesion 23 和 targetSdkVersion 为 28。Flutter 医生报告没有错误,Android SDK 版本 30.0.2 和 Android Studio 4。
为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
您找到解决方案了吗?我有同样的问题。
-
当我使用最新的 Flutter 版本 1.22.2 创建了一个新项目,然后移植到我所有的旧代码中时,一切正常。在进一步检查中,我发现了两件事 -
android\app\build.gradle中的 CompileSDKVersion 应该更新为 29。但更重要的是 - 我发现我遇到了这个问题,因为我在资源中错过了ic_launcher。出于某种原因,尽管缺少资源,但编译仍在继续,然后抛出了这个不合时宜的内容。 -
我在 Flutter 中也出现了同样的错误。但是在故障排除之后,我看到在我之前的步骤中,当我尝试重命名我的包时(com.example 不允许用于 android 版本),我在我的 Application.java 包中错过了一个分号。一旦我解决了这个问题,这个错误也得到了奇怪的解决。猜测这是其他问题的连锁反应......