kivmob 不在 android 应用程序 python kivy 中展示广告

kivmob doesn't show ads in android app python kivy

我尝试在我的应用中添加广告。我在 buildozer.spec 中添加了:

android.permissions = INTERNET, ACCESS_NETWORK_STATE
requirements = python3,kivy, jnius, kivmob
android.api = 28
android.minapi = 21
android.sdk = 24
android.ndk = 19b
android.gradle_dependencies = 'com.google.firebase:firebase-ads:10.2.0'
p4a.branch = master
android.meta_data = com.google.android.gms.ads.APPLICATION_ID=#here id of my app

我有代码:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivmob import KivMob
class TestApp(App):
    def build(self):
        try:
            fl = FloatLayout()
            self.ads = KivMob('')#here my app
            self.ads.add_test_device(here my id)
            self.ads.new_banner('', top_pos=True)#here my banner
            self.ads.request_banner()
            self.ads.show_banner()
        except Exception as error:
            fl.add_widget(Label(text=str(error), font_size=(30)))
        return fl
    def on_resume(self):
        self.ads.request_banner()

if __name__ == '__main__':
    TestApp().run()

当我启动这个应用程序时,我看到黑屏,没有其他任何东西。我期待横幅。如何解决?希望大家帮帮我

更新: 如果我使用 TestIds.APPTestIds.BANNER 它会工作并显示广告。为什么会这样?如何使用真正的横幅广告?

所以首先在buildozer.spec中的需求中添加android。 android.api = 28

是的,使用 TestIds 提供可在任何设备上显示的广告,因为它们是 google 的示例广告。

但是当您使用自己的广告单元时,您是从 admob 帐户创建的。 您必须在您的代码中提供您的测试设备 ID,以便识别 google 您正在测试您自己的广告。

在构建方法中使用 self.ads.add_test_device(YOUR_DEVICE_ID)。

你从哪里得到你的设备 ID 那么你必须在 logcat 输出中找到你的设备 ID。

希望对您有所帮助。

Kivmob 正在导入 jnius。因为它必须包含在规范文件要求中(你已经完成了)。但是你必须使用 pyjnius 而不是 jnius 在要求中。这可能对你有帮助。 但是 kivmob 也在使用 android 模块。我不知道如何将其放入要求中。所以可能会有一些问题。