在奇异果中通过Pyjnius导入时,Interstitial Unity ADS崩溃显示7次后

问题描述

请帮助, 因此,为了在我的Kivy android应用程序中实现Unity ADS进行了艰苦的努力,在该应用程序崩溃之前,我仅在有限的时间内成功显示了ADS。

Java SDK的集成指南在此处(https://unityads.unity3d.com/help/android/integration-guide-android)。他们在这里提供以下示例:

import com.unity3d.ads.IUnityAdsListener;
import com.unity3d.ads.UnityAds;

  public class ShowInterstitialAds extends AppCompatActivity implements View.OnClickListener,IUnityAdsListener {

private String unityGameID = "1234567";
private Boolean testMode = true;
private String placementId = "video";

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);
    // Declare a new listener:
    final UnityAdsListener myAdsListener = new UnityAdsListener ();
    // Add the listener to the SDK:
    UnityAds.addListener(myAdsListener);
    // Initialize the SDK:
    UnityAds.initialize (this,unityGameID,testMode);
}

// Implement a function to display an ad if the Placement is ready:
public void displayInterstitialAd () {
    if (UnityAds.isReady (placementId)) {
        UnityAds.show (this,placementId);
    }
}

// Implement the IUnityAdsListener interface methods:
private class UnityAdsListener implements IUnityAdsListener {

    @Override
    public void onUnityAdsReady (String placementId) {
        // Implement functionality for an ad being ready to show.
    }

    @Override
    public void onUnityAdsstart (String placementId) {
        // Implement functionality for a user starting to watch an ad.
    }

    @Override
    public void onUnityAdsFinish (String placementId,UnityAds.FinishState finishState) {
        // Implement functionality for a user finishing an ad.
    }

    @Override
    public void onUnityAdsError (UnityAds.UnityAdsError error,String message) {
        // Implement functionality for a Unity Ads service error occurring.
    }
}
}

这是我的Python代码,在应用程序因各种不同的错误而崩溃之前,只能工作很短的时间:

 #! /usr/bin/python

import re
import sys
import os 
from android.runnable import run_on_ui_thread
from jnius import autoclass,PythonJavaClass,java_method,cast
from kivy.app import App
import logging

testmode = True
inter_id = "12839"


PythonActivity = autoclass("org.kivy.android.PythonActivity")
Unity_ads_listener = autoclass("com.unity3d.ads.IUnityAdsListener")
Unity_ads = autoclass("com.unity3d.ads.UnityAds")


class Unity_handler(App):
   @run_on_ui_thread
   def __init__(self,a_id):
     self.app_id = a_id
   
   @run_on_ui_thread
   def init_unity(self):
     
     new_ad_listener = UnityAdsListener()
     Unity_ads.addListener(new_ad_listener)
     self.c_activity = cast('android.app.Activity',PythonActivity.mActivity)
     Unity_ads.initialize(self.c_activity,self.app_id,testmode)
 

   @run_on_ui_thread
   def show_ad(self,id_num):
   
     #show interstial ads
     #self.inter_id = id_num

     if Unity_ads.isReady(inter_id):
          try:
            
            Unity_ads.show(self.c_activity,inter_id)
          except:
            fail=1 


  class UnityAdsListener(PythonJavaClass):
     __javainterfaces__= ['com/unity3d/ads/IUnityAdsListener']  
     __javacontext__= 'app'

    
     @java_method('(Ljava/lang/String;)V')
     def onUnityAdsReady(self,inter_id):
        pass        

     @java_method('(Ljava/lang/String;)V')   
     def onUnityAdsstart(self,inter_id):
        pass

     @java_method('(Ljava/lang/String;Lcom/unity3d/ads/UnityAds$FinishState;)V')
     def onUnityAdsFinish(self,inter_id,un_f):
        pass

     @java_method('(Lcom/unity3d/ads/UnityAds$UnityAdsError;Ljava/lang/String;)V')
     def onUnityAdsError(self,error,message):
        pass 

我在做错什么吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)