具体报错信息:
BDMapSDKException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.
这个问题就是没有在Application中的onCreate执行初始化
SDKInitializer.initialize(this);
在flutter中都是使用默认的Application: android:name="${applicationName}"
很明显就是需要自己创建一个Application,由于是flutter项目,创建Application似乎不是那么容易
image.png
一创建出来就是报红色,如果是 java还好弄,官方的demo就是java直接复制即可
不过现在创建flutter项目都是Kt
有两种方式,1.就是集成百度的BmfMapApplication,这类已经初始化了,集成就可以
2.创建的MyApplication重写onCreate,在里面初始化SDKInitializer.initialize(this);
我这里使用第一种
class MyApplication : BmfMapApplication(){
}
当你写完以为就ok了,结果运行不起来,原因是没有导包
import com.baidu.mapapi.base.BmfMapApplication
class MyApplication : BmfMapApplication(){
}
然后回到AndroidManifest.xml 修改 android:name="${applicationName}"
即:android:name="com.example.flutter_test_demo.MyApplication"
这样就不会报错了
网友评论