使用Kivy与KivMob集成AdMob测试横幅广告无显示问题排查
问题排查与解决步骤
1. 核心缺失:未调用横幅显示方法
你的代码仅完成了广告请求,没有触发显示横幅的操作。在request_banner()后必须添加:
self.kivmob.show_banner()
建议同时绑定广告加载的回调事件,方便定位加载失败的具体原因:
def on_banner_loaded(self): print("横幅广告加载成功") self.kivmob.show_banner() def on_banner_failed(self, error): print(f"横幅加载失败: {error}") # 在build方法中绑定回调 self.kivmob.bind(on_banner_loaded=self.on_banner_loaded) self.kivmob.bind(on_banner_failed=self.on_banner_failed)
2. Android权限配置不全
打包时必须在Android项目中添加联网相关权限,否则广告无法正常请求:
- 若使用Buildozer,在
buildozer.spec中添加:
android.permissions = INTERNET, ACCESS_NETWORK_STATE
- 手动修改
AndroidManifest.xml则添加:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
3. 初始化细节优化
可以直接使用KivMob提供的TestIds常量,避免手动输入测试ID出错:
self.kivmob = KivMob(TestIds.APP) self.kivmob.new_banner(TestIds.BANNER)
同时确保使用的是最新版KivMob,旧版本可能存在兼容性问题。
4. 布局空间预留问题
当前布局仅添加了退出按钮,虽然后台横幅默认显示在屏幕底部/顶部,但如果布局控件存在遮挡或布局方向不合理,可能导致视觉上无法看到广告。可以调整布局为垂直方向:
layout = BoxLayout(orientation='vertical')
5. 设备与环境检查
- 确认测试设备联网正常,未开启广告拦截类应用
- 优先使用真实设备测试,部分模拟器对AdMob支持不佳
- 检查设备系统WebView是否为最新版本,旧版WebView可能无法渲染广告
内容的提问来源于stack exchange,提问作者Liku Zelleke
相关产品推荐
相关产品推荐

