有时在我的地图活动上有 50% 的时间我会收到此错误:
Fatal Exception: java.lang.NullPointerException: Attempt to get length of null array
at java.nio.ByteBufferAsIntBuffer.put(ByteBufferAsIntBuffer.java:122)
at com.google.maps.api.android.lib6.gmm6.vector.gl.buffer.o.e(:com.google.android.gms.dynamite_mapsdynamite@19420048@19.4.20 (040400-271418971):20)
at com.google.maps.api.android.lib6.gmm6.vector.gl.buffer.o.d(:com.google.android.gms.dynamite_mapsdynamite@19420048@19.4.20 (040400-271418971):36)
at com.google.maps.api.android.lib6.gmm6.vector.gl.drawable.a.a(:com.google.android.gms.dynamite_mapsdynamite@19420048@19.4.20 (040400-271418971):66)
at com.google.maps.api.android.lib6.gmm6.vector.gl.drawable.ao.a(:com.google.android.gms.dynamite_mapsdynamite@19420048@19.4.20 (040400-271418971):227)
at com.google.maps.api.android.lib6.gmm6.vector.cl.a(:com.google.android.gms.dynamite_mapsdynamite@19420048@19.4.20 (040400-271418971):274)
at com.google.maps.api.android.lib6.gmm6.vector.bz.a(:com.google.android.gms.dynamite_mapsdynamite@19420048@19.4.20 (040400-271418971):359)
at com.google.maps.api.android.lib6.gmm6.vector.bg.run(:com.google.android.gms.dynamite_mapsdynamite@19420048@19.4.20 (040400-271418971):85)
我不知道可能是什么问题,有时它可以工作,有时它会给我这个错误,尤其是在我的 LG g6 上。 我找了好几天,一无所获。 谁能指出我可能有什么问题?
当我离开带有地图的屏幕并太快返回它时,我的颤振应用程序上显示相同的错误。我认为这里讨论了这个问题:
https://issuehint.com/issue/flutter/flutter/105584
他们提到了 Flutter 3 的一个问题,并建议回到 Flutter 2.10。
**编辑:Github中有一个未解决的问题:https://github.com/flutter/flutter/issues/105965
其中一位用户说:
"到目前为止,我唯一能想到的就是使用GoogleMap小部件在屏幕上添加Navigator.pop的延迟+拒绝用户在此期间做任何事情。
Future<void> _delayedPop(BuildContext context) async {
unawaited(
Navigator.of(context, rootNavigator: true).push(
PageRouteBuilder(
pageBuilder: (_, __, ___) => WillPopScope(
onWillPop: () async => false,
child: Scaffold(
backgroundColor: Colors.transparent,
body: const Center(
child: CircularProgressIndicator.adaptive(),
),
),
),
transitionDuration: Duration.zero,
barrierDismissible: false,
barrierColor: Colors.black45,
opaque: false,
),
),
);
await Future.delayed(const Duration(seconds: 1));
Navigator.of(context)
..pop()
..pop();
}
自从您在 2 年前发布此帖子以来,我不确定这是您的问题,但也许它会帮助其他人!
根据以下评论,试试这个:
将google_maps_flutter_android: '>=2.4.15'
添加到pubspec.yaml
。
然后在运行应用程序之前,调用main()
中的某个地方:
await GoogleMapsFlutterAndroid().initializeWithRenderer(AndroidMapRenderer.latest);
希望这应该解决问题。