uni-app 将targetSdkVersion指定为29时 互动游戏无法正常打开

uni-app 将targetSdkVersion指定为29时 互动游戏无法正常打开

2 回复

Bug已确认

更多关于uni-app 将targetSdkVersion指定为29时 互动游戏无法正常打开的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 中将 targetSdkVersion 设置为 29 后,互动游戏无法正常打开,这通常与 Android 10(API 29)引入的存储权限策略(Scoped Storage)有关。从 Android 10 开始,应用默认被限制在沙盒内访问外部存储,除非声明 requestLegacyExternalStorage=true 或适配分区存储。

可能原因及解决方案:

  1. 未适配分区存储
    Android 10+ 默认启用分区存储,若游戏依赖外部存储路径(如读取本地文件),可能导致文件访问失败。
    解决:在 manifest.jsonapp-plus -> distribute -> android 中添加以下配置:

    "android": {
      "targetSdkVersion": 29,
      "useLegacyExternalStorage": true
    }
    

    此配置允许临时沿用旧版存储模式(但注意 Android 11+ 可能限制此配置)。

  2. 权限声明不足
    targetSdkVersion=29 需要显式声明存储权限,并动态申请。
    检查步骤

    • manifest.json 中确认已添加权限:
      "permissions": [
        "android.permission.READ_EXTERNAL_STORAGE",
        "android.permission.WRITE_EXTERNAL_STORAGE"
      ]
回到顶部