【问题标题】:FlutterFirebaseCorePlugin.java uses or overrides a deprecated APIFlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API
【发布时间】:2021-04-27 22:53:24
【问题描述】:

好的,所以我在不导入 firebase 核心、firebase auth 和 cloud firestore 的情况下运行我的程序,我的代码运行良好,但我向 firebase 注册了我的应用程序,它仍然运行良好,但只要我导入 Firebase_auth、@987654322 @ 和 cloud_Firestore... 我收到以下错误

Note: C:\appflutter\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_core-0.7.0\android\src\main\java\io\flutter\plugins\firebase\core\FlutterFirebaseCorePlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\appflutter\flutter\.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.16.0\android\src\main\java\io\flutter\plugins\firebase\firestore\streamhandler\TransactionStreamHandler.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
D8: Cannot fit requested classes in a single dex file (# methods: 89543 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
The number of method references in a .dex file cannot exceed 64K.

请帮帮我。

【问题讨论】:

  • 发布pubspec.yamlbuild.gradle

标签: firebase flutter dart dart-pub flutter-packages


【解决方案1】:

我今天遇到了同样的问题,我在 Github 上找到了解决方案here

首先,从pub.dev获取最新版本的依赖项

当前最新版本如下:

  1. firebase_auth: ^0.20.0+1
  2. firebase_core: ^0.7.0

然后在终端运行这3个命令:

$ flutter pub upgrade

$ flutter pub get

$ flutter clean

然后运行你的项目

$ flutter run

希望对您有所帮助。

【讨论】:

  • 这对我不起作用。你使用哪个 Dart SDK?
  • 这对我也没有帮助。请问还有其他解决方案吗? minSdkVersion 27 targetSdkVersion 30 compileSdkVersion 30 Flutter 版本 2.2.0 依赖项:firebase_core:^1.2.0 firebase_messaging:^10.0.0 flutter_local_notifications:^5.0.0+4 错误 g\firebase_core-1.2.0\android\src\main\java\ io\flutter\plugins\firebase\core\FlutterFirebaseCorePlugin.java:71:警告:[deprecation] PluginRegistry 中的注册器已被弃用 public static void registerWith(PluginRegistry.Registrar registrar) {
  • 这对我有用。当我运行前三个命令时,我在整个项目中遇到了几个错误。但是随着“颤动运行”,一切都得到了修复。谢谢!
【解决方案2】:

似乎这是 Firebase 插件中的一个错误:https://github.com/FirebaseExtended/flutterfire/issues/3876。但是将 min SDK 设置为 23 不会显示警告。

【讨论】:

  • 这不是关于不显示警告,而是关于如何在不摆脱 firebase 支持的情况下承认 minSdk 16 或更高版本。
  • 我的意思是在 SDK 23 或更高版本中不会出现该错误。
  • android>app>build.gradle 中将 SDK 更新为 23,它有所帮助。
【解决方案3】:

将我的 sdkVersion 更改为 23 对我有用:

只需转到 android>app>build.gradle 和 将 defaultConfig{} 中的 minSdkVersion-line 更改为 .. minSdkVersion 23

【讨论】:

    【解决方案4】:
    $ flutter pub get
    

    只需在终端中执行即可

    【讨论】:

      【解决方案5】:

      在 android 项目中启用 multidex 并再次运行。 我是根据您发布的错误消息的最后部分建议的。

      根据本指南:https://firebase.flutter.dev/docs/installation/android#enabling-multidex

      但是,如果您的 minSdkVersion 设置为 20 或更低,那么您必须使用 multidex 支持库并对您的应用项目进行以下修改

      【讨论】:

      • 对于我来说,即使我有 multiDexEnabled true,我也错过了这个:dependencies { implementation 'com.android.support:multidex:1.0.3}'
      【解决方案6】:

      在android-app-build.gradel文件中

      1. 添加 - 在依赖项部分实现“com.android.support:multidex:1.0.3”
      2. 在默认配置部分添加 - multiDexEnabled true enter image description here

      enter image description here

      【讨论】:

      • 谢谢你,终于为我解决了这个问题!
      【解决方案7】:

      遇到 FlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API 的错误。两天。 最后通过在 app/build.gradle 中将 minSdkVersion 更改为 21 并使用 flutter run --no-sound-null-safety 运行应用程序来解决它。

      发现错误来自健全的 null 安全实现,将所有不兼容的 API 灰色列出来

      【讨论】:

        【解决方案8】:

        对于这个错误:

        注意:locationInD\flutter\plugins\firebase\core\FlutterFirebaseCorePlugin.java 使用或覆盖了已弃用的 API。 注意:使用 -Xlint:deprecation 重新编译以获取详细信息。

        我找到的解决方案是在 android/app/build.gradle 中替换这一行:

        implementation 'com.google.firebase:firebase-analytics-ktx'

        implementation 'com.google.firebase:firebase-analytics'

        【讨论】:

        【解决方案9】:

        这里有两个问题,-Xlint 和 multidex。

        对于 -Xlint,@Sarib 的解决方案对我有用,运行 flutter pub upgradeflutter pub getflutter clean 后 -Xlint 错误都消失了。如果您不熟悉终端,可以在 Android Studio 的 Tools > Flutter 下找到它们。

        对于 multidex,根据 Android Studio User Guide,如果您的 minSdkVersion 为 21 或更高,则默认启用 multidex。虽然@Joshi 建议enabling multidex,但我认为将 android/app/build.gradle 文件中的minSdkVersion 更新到 21 或更高版本更简单,而不是弄乱更多变量并添加更多依赖项,假设您正在构建一个面向 Android21 或更高版本的应用。

        【讨论】:

          【解决方案10】:

          对我来说,我将我的一个实现版本从 实现平台('com.google.firebase:firebase-bom:27.1.0') 到

          实现平台('com.google.firebase:firebase-bom:26.6.0') 目前这个当前版本“27.1.0”存在一些错误,运行应用程序后它可以工作

          //为了帮助某个人,我的项目需要为我的广告实施此实施#admob

          【讨论】:

            【解决方案11】:

            更改为 minSdkVersion 24 在 android/app/build.gradle

            dependencies {
            //add this in your dependencies
                implementation "androidx.multidex:multidex:2.0.0"
            }
            

            然后

            $ flutter clean
            $ flutter run
            

            【讨论】:

            • 你不需要去 24 只需设置 minSdkVersion 21 也可以
            【解决方案12】:

            我遇到了同样的问题,并结合了两个建议的修复以使其最终正常工作:

            minSdkVersion 21,改为23 运行“颤振酒吧升级” = 问题已修复!

            仔细检查修复的内容:

            我也恢复到 21 并且无效 + flutter clean 并且问题再次出现。然后我改成23,警告就消失了!

            【讨论】:

              【解决方案13】:

              检查你的 minSDK,它在 23 岁时可以正常工作

              【讨论】:

                猜你喜欢
                • 2021-12-11
                • 1970-01-01
                • 2020-04-19
                • 2021-08-26
                • 2021-12-20
                • 1970-01-01
                • 2020-05-01
                • 1970-01-01
                相关资源
                最近更新 更多