好吧,我运行我的程序时没有导入 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 插件中的一个错误:https://github.com/FirebaseExtended/flutterfire/issues/3876。然而,将 min SDK 设置为 23 不会显示警告。
将我的 sdkVersion 更改为 23 对我有用:
只需转到 android>app>build.gradle 并 将 defaultConfig{} 中的 minSdkVersion-line 更改为 ..
minSdkVersion 23
$ flutter pub get
只需在您的终端中执行即可工作
在android项目中启用
multidex
并再次运行。
我根据您发布的错误消息的最后部分建议这样做。
根据本指南:https://firebase.flutter.dev/docs/installation/android#enabling-multidex
但是,如果您的 minSdkVersion 设置为 20 或更低,那么您必须使用 multidex 支持库并对您的应用项目进行以下修改
遇到了FlutterFirebaseCorePlugin.java使用或覆盖已弃用的API的错误。两天。 最终通过在 app/build.gradle 中将 minSdkVersion 更改为 21 并使用 flutter run --no-sound-null-safety 运行应用程序解决了这个问题。
发现错误来自于健全的空安全实现,该实现将所有不兼容的 API 灰名单
这里有两个问题,-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 或更高版本的应用程序。
对于此错误:
注意:locationInD lutter\plugins irebas