【发布时间】:2021-07-17 16:52:44
【问题描述】:
我在 1 年前创建了简单的颤振应用程序(仅限 Android),但忘记了它。 现在突然之间它必须投入生产。 此应用包含 Firebase 身份验证、Firestore 数据库和带有 Places API 的谷歌地图。
dependencies:
flutter:
sdk: flutter
flutter_localizations: # Add this line
sdk: flutter
firebase_auth: ^0.14.0+5
provider: ^3.1.0
animated_text_kit: ^3.1.2
liquid_pull_to_refresh: ^2.0.0
url_launcher: ^5.7.10
expandable: ^4.1.4
image_picker: ^0.6.7+22
http: ^0.12.1
geoflutterfire: ^2.0.3+3
flutter_spinkit: "^4.1.2"
share: ^0.6.5
intl: ^0.16.1
firebase_messaging: ^6.0.1
flutter_slidable: ^0.5.7
country_code_picker: ^1.5.0
flutter_rating_bar: ^3.1.0
cloud_firestore: ^0.12.9+4
google_maps_flutter: ^0.5.30
cupertino_icons: ^1.0.0
在调试模式下一切正常。 但是现在当我开始发布并将它们放入 Play Console 时,我遇到了一个大问题。 谷歌地图(_这是应用程序的关键元素)不起作用(不可见)。 顺便说一句,Places API 有效。 我在这里阅读了所有问题,并在 Google 开发人员控制台和 Firebase 控制台中使用了 API 密钥限制(指纹)等等。 无济于事。 当我使用“flutter build appbundle”在本地机器上构建新版本时,我在日志中看到错误。
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: C:\flutter\.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.13.7\android\src\main\java\io\flutter\plugins\
firebase\cloudfirestore\CloudFirestorePlugin.java uses or overrides a deprecated API.
当我从 Play 商店(内部测试)获得应用程序后在设备上以发布模式运行应用程序时,我在有关 Google 地图的日志中看到此错误
E/flutter ( 7124): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception:
PlatformException(error, java.lang.IllegalStateException: Trying to create a platform view of unregistered type: plugins.flutter.io/google_maps
E/flutter ( 7124): at io.flutter.plugin.platform.k$a.d(Unknown Source:229)
E/flutter ( 7124): at io.flutter.embedding.engine.i.i$a.b(Unknown Source:152)
E/flutter ( 7124): at io.flutter.embedding.engine.i.i$a.J(Unknown Source:144)
E/flutter ( 7124): at c.a.d.a.i$a.a(Unknown Source:17)
E/flutter ( 7124): at io.flutter.embedding.engine.e.b.d(Unknown Source:57)
E/flutter ( 7124): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(Unknown Source:4)
E/flutter ( 7124): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter ( 7124): at android.os.MessageQueue.next(MessageQueue.java:379)
E/flutter ( 7124): at android.os.Looper.loop(Looper.java:144)
E/flutter ( 7124): at android.app.ActivityThread.main(ActivityThread.java:7529)
E/flutter ( 7124): at java.lang.reflect.Method.invoke(Native Method)
E/flutter ( 7124): at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
E/flutter ( 7124): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
E/flutter ( 7124): , null, null)
E/flutter ( 7124): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:582)
E/flutter ( 7124): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159)
E/flutter ( 7124): <asynchronous suspension>
E/flutter ( 7124): #2 TextureAndroidViewController._sendCreateMessage (package:flutter/src/services/platform_views.dart:1039)
E/flutter ( 7124): <asynchronous suspension>
E/flutter ( 7124): #3 AndroidViewController.create (package:flutter/src/services/platform_views.dart:749)
E/flutter ( 7124): <asynchronous suspension>
E/flutter ( 7124): #4 RenderAndroidView._sizePlatformView (package:flutter/src/rendering/platform_view.dart:174)
E/flutter ( 7124): <asynchronous suspensio
我是一名 JS 开发人员,所以 Dart 很容易掌握,但 Java 对我来说很难。 请说明问题。 这里发生了什么,在这种情况下该怎么办? 我将非常感激。 PS....在本地调试模式下一切正常。 此外,我创建了我的应用程序的副本并删除了除与 google-map 包相关的所有代码和依赖项并构建了新版本。没有地图出现。所以问题出在这个谷歌地图上,我认为没有依赖冲突。!!!另一项观察 - 图像选择器和 URL 启动器在从 Google Play 控制台发布时都不起作用。但是,如果我在本地运行 flutter run --release,一切都会好起来的。我想知道 - 也许我必须在 Play 控制台中添加一些访问策略或其他内容?
【问题讨论】:
-
你是否在生产模式下使用互联网权限
-
检查你在不同环境下是否安装了相同版本的cloudflare、flutter和firebase
-
是的,我有互联网权限 -
-
您好 MalcolmInTheCenter。你能详细说明吗?我不使用 cloudflare 如何查看版本?
-
您使用的是受限的 Google Maps API 密钥吗?
标签: flutter google-maps google-cloud-firestore