biu784 2026-04-16 18:42 采纳率: 0%
浏览 8

uni-AD业务状态异常(-9001)

我的项目是 uniapp离线打包www放入xcode生成ipa
是IOS环境
在原生工程中接入了穿山甲(聚合)广告,app里面是可以正常播放的,但是会弹出该应用的uni-AD业务状态异常(-9001),请登录https://uniad.dcloud.net.xn--cn-mr9c973h/

我非常确定我的项目中没有接入uni-ad,并且将原生工程里面相关的sdk也删除了

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2026-04-16 18:43
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    你遇到的 “uni-AD业务状态异常(-9001)” 错误,通常与 uni-ad 广告组件或相关配置 有关。虽然你确认项目中没有接入 uni-ad,并且删除了原生工程中的 SDK,但仍有可能是以下原因导致的:


    ✅ 一、可能的原因分析

    1. 项目中仍然存在 uni-ad 的依赖或引用

    即使你认为没有使用 uni-ad,但可能是由于以下原因:

    • pages.json 中错误地引入了广告组件
    • 在某个页面中使用了 uni-ad 的 API 或标签(如 <ad>
    • 项目中仍有未清理的广告组件代码
    • 使用了某些第三方插件或库,间接引入了 uni-ad

    2. 平台配置文件中存在广告配置

    manifest.jsonapp.json 中可能有广告相关的配置项,比如:

    "usingComponents": {
      "uni-ad": "..."
    }
    

    或者在 manifest.json 中设置了广告相关的字段。

    3. uni-ad 被自动注入到项目中

    某些情况下,如果你在 H5 环境下运行项目,或者通过 npm install 安装了 uni-ad 的依赖,可能会被自动引入。

    4. DCloud 控制台中配置了广告

    即使你没用 uni-ad,但如果你在 DCloud 控制台 中注册了应用并配置了广告,系统仍可能检测到该应用,并报出异常。


    ✅ 二、解决方案

    第一步:彻底检查项目代码

    1. 搜索项目中所有包含 uni-ad 的文件

    在你的项目中搜索 uni-ad<ad>import uniAd 等关键词:

    grep -r 'uni-ad' .
    grep -r '<ad' .
    grep -r 'import uniAd' .
    

    2. 删除所有与 uni-ad 相关的代码

    • 删除所有 <ad> 标签
    • 删除所有 uni-ad 的 import 引用
    • 删除任何与广告相关的页面或组件

    第二步:检查 manifest.json 和 pages.json

    1. 打开 manifest.json 文件

    检查是否有如下内容:

    {
      "usingComponents": {
        "uni-ad": "..."
      }
    }
    

    如果有的话,请删除它。

    2. 检查 pages.json 中是否引入了广告组件

    确保没有类似以下的配置:

    {
      "pages": [
        {
          "path": "pages/index/index",
          "style": {
            "navigationBarTitleText": "首页"
          },
          "usingComponents": {
            "uni-ad": "..."
          }
        }
      ]
    }
    

    第三步:清理项目缓存和依赖

    1. 清理 node_modules 和 package-lock.json

    rm -rf node_modules
    rm package-lock.json
    npm install
    

    2. 清理 uni-app 缓存

    // 在项目根目录执行
    rm -rf .uvue
    

    第四步:检查 DCloud 控制台配置

    1. 登录 DCloud 控制台

    • 查看是否为你的项目注册了广告账号
    • 如果有,尝试取消绑定或重新配置

    第五步:检查原生工程中是否残留了广告 SDK

    即使你删除了 SDK,也有可能:

    • AndroidManifest.xml 中仍有广告权限或服务声明
    • gradle.build 中仍有广告依赖
    • res 目录中有广告资源文件

    请检查原生工程中的这些部分,确保完全删除。


    ✅ 三、示例:删除 uni-ad 相关代码

    原始代码示例(错误)

    <template>
      <view>
        <ad unit-id="your-unit-id"></ad>
      </view>
    </template>
    
    <script>
    import uniAd from '@/components/uni-ad/uni-ad.vue';
    export default {
      components: { uniAd }
    }
    </script>
    

    修改后(正确)

    <template>
      <view>
        <!-- 移除广告组件 -->
      </view>
    </template>
    
    <script>
    export default {
      // 不再引入 uni-ad 组件
    }
    </script>
    

    ✅ 四、最终建议

    请严格按照上述步骤操作,尤其是“彻底检查项目代码”和“清理缓存”这两步,因为 uni-ad 可能以多种方式被引入。

    如果问题仍未解决,建议你提供以下信息,我可以进一步帮你排查:

    1. 项目结构截图或关键文件内容(如 manifest.jsonpages.json
    2. 你使用的 uni-app 版本
    3. 是否使用了 H5 运行环境?
    4. 是否使用了第三方广告插件?

    如需我帮你分析具体文件内容,也可以直接上传相关代码片段。

    评论

报告相同问题?

问题事件

  • 修改了问题 4月16日
  • 创建了问题 4月16日