FlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API

问题描述 投票:0回答:9

好吧,我运行我的程序时没有导入 firebase core、firebase auth 和 cloud firestore,我的代码运行得很好,但我用 firebase 注册了我的应用程序,它仍然运行得很好,但一旦我导入

Firebase_auth
Firebase_core
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.

请帮助我。

firebase flutter dart dart-pub flutter-packages
9个回答
24
投票

我今天遇到了同样的问题,我在 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

这希望对您有帮助。


13
投票

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


10
投票

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

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

minSdkVersion 23


4
投票
$ flutter pub get

只需在您的终端中执行即可工作


4
投票

在android项目中启用

multidex
并再次运行。 我根据您发布的错误消息的最后部分建议这样做。

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

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


2
投票

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

发现错误来自于健全的空安全实现,该实现将所有不兼容的 API 灰名单


2
投票

在android - app - build.gradel文件中

  1. 在依赖项部分添加 -
    implementation 'com.android.support:multidex:1.0.3'
  2. 添加 - 默认配置部分中的 multiDexEnabled true enter image description here

enter image description here


1
投票

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

对于 -Xlint,@Sarib 的解决方案对我有用,运行

flutter pub upgrade
flutter pub get
flutter clean
后,两个 -Xlint 错误都消失了。如果您不熟悉 Terminal,可以在 Android Studio 的“工具”>“Flutter”下找到它们。

对于 multidex,根据 Android Studio 用户指南,如果您的 minSdkVersion 为 21 或更高,则默认启用 multidex。虽然 @Joshi 建议启用 multidex,但我认为将 android/app/build.gradle 文件中的

minSdkVersion
更新为 21 或更高更简单,而不是弄乱更多变量并添加更多依赖项(假设您正在构建)面向 Android21 或更高版本的应用程序。


1
投票

对于此错误:

注意:locationInD lutter\plugins irebas

© www.soinside.com 2019 - 2024. All rights reserved.