I'm trying to get rewarded ads to work on kivy using pyjnius by following the example by google (https://github.com/googleads/googleads-mobile-android-examples/tree/main/java/admob/RewardedVideoExample) to create a loadRewardedAd function and a showRewardedVideo function.
from jnius import autoclass, PythonJavaClass, java_method
from kivy.logger import Logger
RewardedAdLoadCallback = autoclass("com.google.android.gms.ads.rewarded.RewardedAdLoadCallback")
class RewardedVideoAdListener(RewardedAdLoadCallback):
__javacontext__ = 'app'
__javaclass__ = "com/google/android/gms/ads/rewarded/RewardedAdLoadCallback"
__INFO = True
@java_method('(Lcom/google/android/gms/ads/AdError;)V')
def onAdFailedToLoad(self, loadAdError):
if self.__INFO:
Logger.info("AdMob: onAdFailedToLoad")
@java_method('(Lcom/google/android/gms/ads/rewarded/RewardedAd;)V')
def onAdLoaded(self, rewardedAd):
if self.__INFO:
Logger.info("AdMob: onAdLoaded")
class Ads:
def __init__(self, AD_UNIT_ID="ca-app-pub-3940256099942544/5224354917"):
self.rewarded_ad = None
self.is_loading = False
self.AD_UNIT_ID = AD_UNIT_ID
def load_rewarded_ad(self):
if self.rewarded_ad is None:
self.is_loading = True
RewardedAd = autoclass("com.google.android.gms.ads.rewarded.RewardedAd")
AdRequestBuilder = autoclass('com.google.android.gms.ads.AdRequest$Builder')
activity = autoclass('org.kivy.android.PythonActivity')
ad_request = AdRequestBuilder().build()
RewardedAd.load(
activity,
self.AD_UNIT_ID,
ad_request,
RewardedVideoAdListener()
)
Among other things such as a huge coredump I get this error which I think is the most relevant.
04-14 02:22:52.732 16008 25520 F org.test.myapp: runtime.cc:677] JNI DETECTED ERROR IN APPLICATION: can't make objects of type com.google.android.gms.ads.rewarded.RewardedAdLoadCallback: 0x12caeb18
04-14 02:22:52.732 16008 25520 F org.test.myapp: runtime.cc:677] in call to NewObjectA
04-14 02:22:52.732 16008 25520 F org.test.myapp: runtime.cc:677] from int org.libsdl.app.SDLActivity.nativeRunMain(java.lang.String, java.lang.String, java.lang.Object)
What is the reason I cant make objects of type RewardedAdLoadCallback?