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

使用Cordova添加Android存储权限后构建失败,如何解决?

Cordova Android添加存储权限后构建失败(退出码1)解决办法

可能原因及对应解决方案

1. 清理构建缓存与重建平台

缓存冲突是这类问题的常见诱因,直接执行以下操作:

  • 清理当前构建缓存:cordova clean android
  • 删除旧的Android平台目录后重新添加:
    cordova platform remove android
    cordova platform add android@latest
    

2. 修正权限声明与适配Android版本

Android 10+引入了Scoped Storage,13+又更新了存储权限模型,直接声明旧权限可能触发构建冲突。修改config.xml中的Android平台配置:

<platform name="android">
    <allow-intent href="market:*" />
    <preference name="AndroidPersistentFileLocation" value="Compatibility" />
    <!-- 启用旧存储模型兼容(Android 10+) -->
    <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application">
        <application android:requestLegacyExternalStorage="true" />
    </edit-config>
    <!-- 为Android 13以下版本声明传统存储权限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    <!-- Android 13+所需的媒体权限(按需添加) -->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
</platform>

3. 检查插件权限冲突

部分Cordova插件(如文件操作类插件)会自动声明存储权限,重复手动声明会导致Gradle合并Manifest时出错:

  • 执行cordova plugin ls查看已安装插件,确认是否有插件已包含存储权限
  • 如果存在冲突,移除手动添加的权限声明,依赖插件自动注入的权限

4. 获取详细错误日志定位问题

只看退出码1无法确定具体错误,执行带日志的构建命令:

cordova build android --verbose

查看输出中的Gradle错误信息,比如Manifest合并失败、依赖缺失等,再针对性解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:40:21