首页 > 解决方案 > google_maps_flutter 在发行版中不起作用

问题描述

1 年前我创建了简单的颤振应用程序(仅限 Android)并忘记了它。现在突然之间它必须投入生产。这个应用程序包含带有 Places API 的 firebase auth、firestore 数据库和谷歌地图。

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 控制台中添加一些访问策略或其他内容?

标签: fluttergoogle-mapsgoogle-cloud-firestore

解决方案


经过很长时间的搜索,主要感谢 Ruslanbek0809 的帮助,我终于解决了这个问题。
在 android/app/build.gradle 我添加了:
shrinkResources false 和 minifyEnabled false 到 buildTypes

    buildTypes {
        release {
            signingConfig signingConfigs.release
            shrinkResources false
            minifyEnabled false
        }
    }

奇迹发生了


推荐阅读