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

Cordova应用提交Play Store触发NonSdkApiUsedViolation被拒求助

问题根因

从报错日志可以明确,非SDK API调用行为来自Chromium内核的AudioManagerAndroid初始化逻辑,并非业务代码导致,触发原因有两个:

  1. 当前使用的Cordova Android平台版本过低,内置的WebView内核版本老旧,存在调用谷歌已限制的非公开API的问题
  2. 你安装的cordova-plugin-media 5.0.3、cordova-plugin-media-capture 3.0.3版本较旧,依赖的音频处理逻辑未适配谷歌最新的API限制规则

解决方案

按优先级从高到低执行即可:

方案1:升级Cordova Android平台版本(首选,解决90%以上同类问题)

  • 首先卸载旧版本安卓平台:运行命令 cordova platform remove android
  • 安装10.1.2及以上的稳定版安卓平台:运行命令 cordova platform add android@11.0.0,该版本内置的WebView已经完成了Android 12+的非SDK API限制适配,官方已修复AudioManager相关的违规调用问题
  • 升级完成后重新编译打包测试即可

方案2:升级音频相关插件

如果升级Cordova Android平台后仍然触发警告,同步升级音频类插件:

  • 先卸载旧版音频插件:
    cordova plugin remove cordova-plugin-media
    cordova plugin remove cordova-plugin-media-capture
    
  • 安装适配后的新版插件:
    cordova plugin add cordova-plugin-media@6.1.0
    cordova plugin add cordova-plugin-media-capture@4.0.0
    
  • 新版插件已移除对旧版Chromium音频逻辑的依赖,不会触发非SDK API调用警告

方案3:临时规避方案(仅用于紧急提交,不推荐长期使用)

如果暂时无法升级基础环境,可修改安卓项目的AndroidManifest.xml文件,在<application>标签下添加如下配置,临时关闭StrictMode的非SDK API检查:

注意:该方法仅可用于临时绕过审核,后续必须升级基础组件,否则Android更高版本会直接拦截应用运行

<meta-data
    android:name="android.os.strictmode.NON_SDK_API_DETECTION_ENABLED"
    android:value="false" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:45:01