在onCreate中动态获取权限闪退

领导叫我把公司老项目targetSdkVersion升级一下,原项目targetSdkVersion为19,现在升级到30,cocossdk的版本还是老的3.0,这个不升级,升级完成后,我需要在app启动时动态获取读写权限,这个应该一开始就获取,于是我在onCreate中加入了权限获取的代码:
private String[] contactPermissions = new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE
};
private static final int CONTACT_REQUEST_CODE =100;

private void checkPermissions() {
	unGrantedPermissions = new ArrayList();
	for (int i = 0; i < contactPermissions.length; i++) {
        if (ContextCompat.checkSelfPermission(AppActivity.this, contactPermissions[i]) != PackageManager.PERMISSION_GRANTED) {
        	unGrantedPermissions.add(contactPermissions[i]);
        }
    }
    if (unGrantedPermissions.isEmpty()) {//未授予的权限为空,表示都授予了
  
        Toast.makeText(AppActivity.this,"已经授权",Toast.LENGTH_LONG).show();
        
    } else {//请求权限方法
    	Log.i("nanananana", "initData  isEmpty no");
        String[] permissions = unGrantedPermissions.toArray(new String[unGrantedPermissions.size()]);//将List转为数组
        ActivityCompat.requestPermissions(AppActivity.this, permissions, CONTACT_REQUEST_CODE);
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
	
	Log.i("nanananana", "onRequestPermissionsResult");
	
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    //可在此继续其他操作。
    
    switch (requestCode) {
        case CONTACT_REQUEST_CODE: 
        	NextContinue();
            break;

        default:
            break;

    }      
}

protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
_instance = this;

	this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
	
	//虚拟键隐藏 began
	this.hideNavigationBar();
	
	this.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
		
		@Override
		public void onSystemUiVisibilityChange(int arg0) {
			// TODO Auto-generated method stub
			_instance.hideNavigationBar();
		} 

	});
	//虚拟键隐藏 end		
	
	m_game_for_cpp = new GameAPIForCPP();
	m_game_for_cpp.init(this);
	m_game_from_cpp = new GameAPIFromCPP();
	m_game_from_cpp.init(this);

// 权限相关 began
if (Build.VERSION.SDK_INT >= 23
&& this.getApplicationInfo().targetSdkVersion >= 23) {
checkPermissions();
}
else{
NextContinue();
}

}

结果程序一启动,弹出了授权框,同时程序闪退了,看日志打印了这样一句话:
E/cocos2d-x assert: D:\cocos2d-x-3.0\frameworks\runtime-src\proj.android…/…/cocos2d-x/cocos//2d/platform/android/CCApplication.cpp function:getInstance line:79

--------- beginning of crash

2021-08-12 20:55:09.427 15495-15517/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 15517 (GLThread 1395)

有哪位大佬知道什么原因吗?同样的获取权限代码我放在后面程序启动完成后的点击操作里,是没有问题的,放在onCreate就闪退,哪位大佬能指导一下,非常感谢!!!