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

KivMob广告无法显示且Kivy抛出警告,求助排查方案

KivMob广告无法显示且抛出「Ads will not be shown」警告的解决方案

核心问题分析

从你的代码和运行日志来看,问题主要来自两个关键点:

  1. 平台支持限制:KivMob依赖Google Mobile Ads SDK,该SDK仅适配Android/iOS平台。你当前在Windows桌面环境运行,KivMob没有对应的桌面广告实现,因此直接抛出「Ads will not be shown」警告,这是桌面环境下的正常行为。
  2. 代码初始化逻辑问题:全局创建的KivMob实例未绑定到Kivy App的生命周期,可能导致广告组件初始化不完整。

解决方案步骤

1. 切换到移动平台测试

桌面环境无法加载真实或测试广告,必须在Android模拟器/真机、iOS模拟器/真机上运行测试。可以使用Buildozer打包Android应用,或通过对应工具打包iOS应用后测试。

2. 优化代码结构与初始化逻辑

将KivMob实例移到App类内部,绑定生命周期,并规范使用测试ID:

from kivmob import KivMob, TestIds
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label

class AssistantApp(App):
    def build(self):
        self.layout = BoxLayout(orientation='vertical', spacing=10, padding=(10, 10, 10, 10))
        self.computer_response_label = Label(text="Ready")
        self.layout.add_widget(self.computer_response_label)

        # 初始化KivMob,使用官方测试APP ID
        self.mob = KivMob(TestIds.APP)
        # 添加广告事件监听,排查加载问题
        self.mob.set_banner_event_listener(self.on_banner_event)
        # 创建横幅广告,使用官方测试横幅ID,设置顶部显示
        self.mob.new_banner(TestIds.BANNER, top_pos=True)
        # 请求并显示广告
        self.mob.request_banner()
        self.mob.show_banner()

        return self.layout

    def on_banner_event(self, event):
        # 打印广告事件,便于定位加载失败原因
        print(f"Banner Event: {event}")

if __name__ == "__main__":
    AssistantApp().run()

3. 通过回调排查加载失败细节

添加on_banner_event回调后,可获取广告加载的具体事件,常见错误场景:

  • on_banner_failed_to_load:广告加载失败,错误码对应原因(如3为网络超时、2为ID无效)
  • on_banner_loaded:广告加载成功
  • on_banner_clicked:广告被点击

4. 配置Android平台必要权限

使用Buildozer打包时,需在buildozer.spec中添加权限:

android.permissions = INTERNET, ACCESS_NETWORK_STATE

关键注意事项

  • 测试阶段必须使用KivMob提供的TestIds,自定义广告ID在未通过Google Ads审核前无法加载广告。
  • 桌面环境下的「Ads will not be shown」警告是预期行为,无需处理,仅在移动平台测试广告功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:50:20