【问题标题】:AndroidX.Annotation - Missing class, RequiresApiAndroidX.Annotation - 缺少类,RequiresApi
【发布时间】: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 包中错过了一个分号。一旦我解决了这个问题,这个错误也得到了奇怪的解决。猜测这是其他问题的连锁反应......

标签: flutter androidx


【解决方案1】:

在 android/gradle.properties 添加下面两行。就我而言,使用此解决问题。

android.useAndroidX=true android.enableJetifier=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 2020-01-04
    相关资源
    最近更新 更多