2017-04-22 4 views
-1

안녕하세요 저는 Libgdx에서 RevMob을 사용하여 배너 광고를 통합하려고합니다. 그러나 어떤 이유로 표시되지 않습니다.Revmob in Libgdx

다음 코드를 사용하고 있습니다. 여기

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setContentView(R.layout.activity_game_new); 

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); 
    // cfg.useGL20 = false; 

    final RelativeLayout gameLayout = new RelativeLayout(this); 

    RevMobIntegration revmob = new RevMobIntegration(this); 

    RelativeLayout bannerLayout = new RelativeLayout(this); 


    RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
    adParams.addRule(RelativeLayout.CENTER_VERTICAL); 

    bannerLayout.setLayoutParams(adParams); 

    game = new MyGdxGame(GameActivity.this, revmob); 
    game.setRedirectionListener(this); 


    View gameView = initializeForView(game, cfg); 


    requestWindowFeature(android.view.Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

    // Add the libgdx view 
    gameLayout.addView(gameView); 
//  gameLayout.addView(bannerLayout); 

    Log.d("RevMob", "Checking BannerAd"); 
    if (revmob.getBannerAd() != null) { 
     Log.d("RevMob", "Displaying Called"); 
     gameLayout.addView(revmob.getBannerAd()); 
    } 


    // Hook it all up 
    setContentView(gameLayout); 


    this.onPause(); 
    this.onResume(); 
    gameLayout.refreshDrawableState(); 


    initChartboost(); 


//  startRevMobSession(); 

} 

는 RevMobIntegration 클래스입니다 :

public class RevMobIntegration implements RevmobAdInterface { 

    private static final String APPLICATION_ID = "YourAdmobAppIDHere"; 

    // Set this to false when creating the version for the store. 
    private static final boolean DEBUG = true; 

    private RevMobAdsListener listener; 

    private RevMobFullscreen fullscreenAd; 
    private RevMobBanner bannerAd; 

    private Activity application; 
    private RevMob revmob; 

    public RevMobIntegration(Activity _application) { 
    this.application = _application; 

    startRevMobSession(); 
    } 


    public void startRevMobSession() { 
    //RevMob's Start Session method: 
    revmob = RevMob.startWithListener(application, new RevMobAdsListener() { 
    @Override 
    public void onRevMobSessionStarted() { 
     loadBanner(); // Cache the banner once the session is started 
     Log.i("RevMob", "Session Started"); 
    } 

    @Override 
    public void onRevMobSessionNotStarted(String message) { 
     //If the session Fails to start, no ads can be displayed. 
     Log.i("RevMob", "Session Failed to Start"); 
    } 
    }, application.getString(R.string.rev_mob_app_id)); 
    } 


    //RevMob 
    public void loadBanner() { 
    bannerAd = revmob.preLoadBanner(application, new RevMobAdsListener() { 
    @Override 
    public void onRevMobAdReceived() { 
     showBannerAd(true); 
     Log.i("RevMob", "Banner Ready to be Displayed"); //At this point, 
     the banner is ready to be displayed. 
    } 

    @Override 
    public void onRevMobAdNotReceived(String message) { 
     Log.i("RevMob", "Banner Not Failed to Load"); 
    } 

    @Override 
    public void onRevMobAdDisplayed() { 
     Log.i("RevMob", "Banner Displayed"); 
    } 
    }); 
    } 

    @Override 
    public void showBannerAd(boolean show) { 
    if(show) { 
    Log.i("RevMob", "Showing"); 
    if(bannerAd == null) { 
     startRevMobSession(); 
    } else { 
     Log.i("RevMob", "Banner Displayed"); 
     bannerAd.show(); 
     } 
    } else { 
    bannerAd.hide(); 
    } 
    } 

    public RevMobBanner getBannerAd() { return bannerAd; } 


} 

내 활동에 RevMob을 통합하고 그것을 잘 노력하고 있습니다. 그러나 Game Screen의 경우 광고는 초기화되지만 표시되지는 않습니다. 제안 사항이 있으십니까?

답변

0

revmob.getBannerAd() 반환 null으로 표시됩니다. 왜냐하면 loadBanner();이 호출 될 때 bannerAd 객체가 생성 되었기 때문입니다. RevMob은 세션을 시작하는 데 약간의 시간이 걸립니다.

if (revmob.getBannerAd() != null) { 
    Log.d("RevMob", "Displaying Called"); 
    gameLayout.addView(revmob.getBannerAd()); 
} 

당신은 또한 당신이 class의 좀 걸릴 수 있습니다 설명이 repo을 확인할 수 있습니다.

+0

감사합니다. 그것은 부름을받지 못했습니다. 그래서 나는 5 초의 지연 시간을 넣었고, "호출 된 것을 표시하는"LOG로 점검했다. 그러나 광고가 화면에 아직 나타나지 않습니다. 내가 해봐야 할 다른 건 없니? –

+0

내 레포를 사용해 보시지 않겠습니까? – Aryan

+0

예. RevMobHelper에서 다음 코드에 주석 처리했습니다. // if (banner! = null) { //layout.addView(banner, topParams); //banner.setBackgroundColor(Color.BLACK); //} 그 권리를 주석 처리해야합니까? –