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

Redmi Note 10S启动App闪退报WorkManager无法访问内部存储错误如何解决

问题根因

从崩溃日志可以定位到核心问题:WorkManager默认存放内部数据库的/data/user/0/[你的包名]/no_backup目录在Android 11系统的Redmi Note 10S设备上未被系统自动创建,导致WorkManager初始化时无法打开对应SQLite数据库,触发闪退。
这个问题是部分小米/Redmi设备在Android 11版本上的已知兼容性问题,低版本WorkManager没有对目录不存在的场景做兼容处理,所以会直接抛出异常。

修复方案
  • 方案1:升级WorkManager版本
    这是成本最低的修复方案,WorkManager从2.7.0版本开始已经官方修复了该问题,会在初始化时自动检测并创建缺失的no_backup目录。直接将依赖版本升级到2.7.0及以上的稳定版即可,示例依赖配置:
    dependencies {
        implementation "androidx.work:work-runtime:2.8.1"
        // Kotlin协程版本用下面的依赖
        // implementation "androidx.work:work-runtime-ktx:2.8.1"
    }
    
  • 方案2:手动创建缺失目录(适合无法升级WorkManager版本的场景)
    在应用Application的onCreate方法中,WorkManager初始化之前,提前手动创建no_backup目录即可,该目录属于应用内部私有目录,不需要申请额外存储权限,代码示例:
    // Java版本
    File noBackupDir = new File(getApplicationContext().getFilesDir().getParent(), "no_backup");
    if (!noBackupDir.exists()) {
        noBackupDir.mkdirs();
    }
    
    // Kotlin版本
    val noBackupDir = File(applicationContext.filesDir.parent, "no_backup")
    if (!noBackupDir.exists()) {
        noBackupDir.mkdirs()
    }
    
  • 方案3:临时验证方案
    测试阶段可以直接卸载设备上的旧应用后重新安装,部分场景是应用之前异常卸载导致的目录异常问题,重装可以临时验证问题触发逻辑,但该方法不适合线上用户使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 19:24:00