You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用在三星安卓9设备运行报错:Permission Denial权限拒绝

问题根因

从报错堆栈可以定位到,问题出在你当前使用的Flutter master 2.6开发版中,FlutterActivity的onFlutterUiDisplayed回调调用了系统reportFullyDrawn方法,三星Android 9的ROM对该方法的内部实现存在厂商定制缺陷,会触发跨用户权限校验,普通第三方应用无法申请到INTERACT_ACROSS_USERS_FULL这类系统级权限,因此添加权限声明无法解决问题。

可行解决方案
  • 方案1:自定义FlutterActivity捕获异常(最快生效)
    自己创建自定义Activity继承FlutterActivity,重写onFlutterUiDisplayed方法,捕获该安全异常,示例代码如下:
import android.os.Bundle;
import io.flutter.embedding.android.FlutterActivity;

public class MainActivity extends FlutterActivity {
    @Override
    public void onFlutterUiDisplayed() {
        try {
            super.onFlutterUiDisplayed();
        } catch (SecurityException e) {
            // 忽略三星Android9 ROM触发的权限异常
        }
    }
}

记得把AndroidManifest中启动的Activity替换为你自定义的这个MainActivity。

  • 方案2:切换Flutter稳定通道(长期稳定)
    你当前使用的是master开发版通道,该分支存在大量未经过全量测试的变更,建议切换到stable稳定通道,升级到2.5.x及以上的正式版本,该问题在后续正式版本中已经被官方修复,切换命令如下:
flutter channel stable
flutter upgrade
  • 方案3:降低targetSdkVersion(临时备选)
    如果暂时不希望调整Flutter版本和Activity代码,可以将build.gradle中的targetSdkVersion和compileSdkVersion暂时降到28,也可以规避该问题。

内容的提问来源于stack exchange,提问作者sajanyamaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:39:04