React-native中,使用百度地图SDK(react-native-baidumap-sdk),报错:react-native 报错you have not supplyed the global app context info from SDKInitialize
我搜查了网上的文章,给出了这样的解释:
在应用程序创建时初始化 SDK引用的Context 全局变量:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
}
我的解决办法与这个不同,我是代码中初始化少处理了一个地方,导致用户退出登录后,重新进到调用百度地图的地方报错
所以,当你查不到什么思路的时候,建议耐心的回过头去检查代码逻辑!
贴上引用百度SDK RN代码:
import { Initializer } from 'react-native-baidumap-sdk';
function _handleBaiduInit(i) {
try {
// init 两遍会崩掉
if (!global.initBaiduMapConfigStatus && NativeModules.BaiduMapInitializer) {
global.initBaiduMapConfigStatus = true;
Initializer.init(Config.BAIDUMAP_IOS_KEY)
.then((e) => {
global.initBaiduMapConfigStatus = true;
console.log('react-native-baidumap-sdk init success========>', e);
})
.catch((e) => {
global.initBaiduMapConfigStatus = false;
console.warn('react-native-baidumap-sdk init error========>' + i, e);
i < 3 && handleInit(i++);
});
}
} catch (error) {
global.initBaiduMapConfigStatus = false;
console.warn('react-native-baidumap-sdk init error========>i:' + i, error);
i < 3 && handleInit(i++);
}
}