cocos Android 应用启动是未授予运行时权限导致崩溃

崩溃代码所在位置

奔溃定位到 cocos 构建自动生成的 Android 代码 Cocos2dxActivityonCreate()
原因是执行到了以下代码,直接 return 导致的奔溃

// Workaround in https://stackoverflow.com/questions/16283079/re-launch-of-activity-on-home-button-but-only-the-first-time/16447508
if (!isTaskRoot()) {
    // Android launched another instance of the root activity into an existing task
    //  so just quietly finish and go away, dropping the user back into the activity
    //  at the top of the stack (ie: the last state of this task)
    finish();
    Log.w(TAG, "[Workaround] Ignore the activity started from icon!");
    return;
}

解决

方案一
注释代码,崩溃问题消失【似乎不是最终的解决方案】

/*if (!isTaskRoot()) {
        // Android launched another instance of the root activity into an existing task
        //  so just quietly finish and go away, dropping the user back into the activity
        //  at the top of the stack (ie: the last state of this task)
        finish();
        Log.w(TAG, "[Workaround] Ignore the activity started from icon!");
        return;
}*/

方案二【似乎不是最终的解决方案】
替换 cocos 自动生成的部分代码,替换为以下代码

if (!isTaskRoot()) {
    final Intent intent = getIntent();
    final String intentAction = intent.getAction();
    if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && intentAction != null && intentAction.equals(Intent.ACTION_MAIN)) {
        Log.d(TAG, "onCreate: 关闭");
        finish();
    }
}

~如有更好,更清晰的解决思路,欢迎评论~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值