【发布时间】:2017-11-03 00:33:26
【问题描述】:
我正在尝试在我的第一个游戏中显示 google admob 奖励视频,但我似乎无法让它发挥作用。这是我到目前为止所拥有的,我不了解 Java,所以这对我来说非常困难。任何帮助将不胜感激,我愿意学习。
RewardedVideoAd = autoclass('com.google.android.gms.ads.reward.RewardedVideoAd')
RewardedAds = autoclass('com.google.android.gms.ads.MobileAds')
class AdmobAndroid(EventDispatcher):
mRewardedVideoAd = ObjectProperty(None)
mRewardedAds = ObjectProperty(None)
def __init__(self,**kwargs):
super(AdmobAndroid,self).__init__(**kwargs)
self.mRewardedVideoAd = RewardedVideoAd(mactivity)
self.mRewardedAds = RewardedAds(mactivity)
self.mRewardedVideoAd = self.mRewardedAds.getRewardedVideoAdInstance()
self.mRewardedVideoAd.setRewardedVideoAdListener()
self.mRewardedVideoAd.setAdUnitId(settings.REWARDED_UNIT_ID)
@run_on_ui_thread
def request_Rewarded(self):
if not self.mRewardedVideoAd.isLoaded():
log('REQUESTING rewarded AD')
adRequestBuilder = AdRequestBuilder()
adRequest = adRequestBuilder.build()
self.mRewardedVideoAd.loadAd(adRequest)
else:
log('NO NEED TO REQUEST rewarded AD,already loaded...')
@run_on_ui_thread
def show_Rewarded(self):
if self.mRewardedVideoAd.isLoaded():
self.mRewardedVideoAd.show()
return True
return False
这里以this 为指导。
编辑*:
11-15 04:41:39.858 19683 19701 I python : File "/home/kivy/Desktop/pong/.buildozer/android/app/main.py", line 58, in <module>
11-15 04:41:39.860 19683 19701 I python : File "/home/kivy/Desktop/pong/.buildozer/android/app/admob/__init__.py", line 6, in <module>
11-15 04:41:39.862 19683 19701 I python : File "/home/kivy/Desktop/pong/.buildozer/android/app/admob/admob4android.py", line 30, in <module>
11-15 04:41:39.863 19683 19701 I python : File "/home/kivy/Desktop/pong/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/jnius/reflect.py", line 150, in autoclass
11-15 04:41:39.865 19683 19701 I python : File "jnius/jnius_export_func.pxi", line 23, in jnius.jnius.find_javaclass (jnius/jnius.c:13171)
11-15 04:41:39.867 19683 19701 I python : jnius.jnius.JavaException: Class not found 'com/google/android/gms/ads/reward/RewardedVideoAd'
11-15 04:41:39.951 19683 19701 I python : Python for android ended.
11-15 04:41:39.969 19683 19701 E AndroidRuntime: FATAL EXCEPTION: Thread-1501
11-15 04:41:39.969 19683 19701 E AndroidRuntime: Process: intellign.ultimatepong:python, PID: 19683
11-15 04:41:39.969 19683 19701 E AndroidRuntime: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.reward.RewardedVideoAd" on path: DexPathList[[zip file "/data/app/intellign.ultimatepong-1/base.apk"],nativeLibraryDirectories=[/data/app/intellign.ultimatepong-1/lib/arm, /data/app/intellign.ultimatepong-1/base.apk!/lib/armeabi, /vendor/lib, /system/lib]]
11-15 04:41:39.969 19683 19701 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
11-15 04:41:39.969 19683 19701 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
11-15 04:41:39.969 19683 19701 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
编辑**:横幅测试有效,但我需要的是仍然无效的奖励广告。我的 main.py 中的第 59 行也是:ad_inst = Admob()
11-15 19:48:56.971 345 3908 D WifiService: acquireWifiLockLocked: WifiLock{NlpWifiLock type=2 binder=android.os.BinderProxy@4c670d8}
11-15 19:48:57.369 27702 27722 I Finsky : [1841] com.google.android.finsky.l.c.a(23): Completed 0 account content syncs with 0 successful.
11-15 19:48:57.401 27702 27702 I Finsky : [1] com.google.android.finsky.services.e.a(5): Installation state replication succeeded.
11-15 19:48:58.023 8254 8272 I python : Traceback (most recent call last):
11-15 19:48:58.025 8254 8272 I python : File "/home/kivy/Desktop/pong/.buildozer/android/app/main.py", line 59, in <module>
11-15 19:48:58.028 8254 8272 I python : File "/home/kivy/Desktop/pong/.buildozer/android/app/admob/admob4android.py", line 61, in __init__
11-15 19:48:58.031 8254 8272 I python : File "jnius/jnius_export_class.pxi", line 155, in jnius.jnius.JavaClass.__init__ (jnius/jnius.c:15030)
11-15 19:48:58.034 8254 8272 I python : File "jnius/jnius_export_class.pxi", line 180, in jnius.jnius.JavaClass.call_constructor (jnius/jnius.c:15322)
11-15 19:48:58.036 8254 8272 I python : jnius.jnius.JavaException: No constructor available
11-15 19:48:58.152 8254 8272 I python : Python for android ended.
【问题讨论】:
-
同时上传错误日志
-
@AmodGokhale 我用错误更新了帖子。谢谢
-
您使用的是最新的 google-play-services_lib 吗?它没有在 lib 文件中找到奖励类定义。
-
不,我认为这就是原因,我会更新它并让您知道,谢谢。请查看我的其他帖子:stackoverflow.com/questions/47305550/…
-
@AmodGokhale 感谢您的耐心等待。我更新了谷歌播放库,但我认为错误来自我编写的奖励广告代码。
标签: java android python admob kivy