2014-12-31 6 views
0

andengine을 사용하고 있으며 두 장면을 전환 중입니다. 내 의도는 전환 사이에 삽입 광고를 삽입하는 것입니다.AndMngine에서 Admob의 삽입 광고를 표시하는 방법은 무엇입니까?

public void showGameOver(){ 
mainactivity=new MainActivity(); 

    mainactivity.runOnUiThread(new Runnable(){ 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 

      interstitial = new InterstitialAd(mainactivity); 
      interstitial.setAdUnitId("MY AD UNIT ID"); 

      AdRequest adRequest = new AdRequest.Builder().build(); 


      interstitial.loadAd(adRequest); 
      if (interstitial.isLoaded()) { 
       interstitial.show(); 
       } 


     } 

    }); 

interstitial.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 

     } 

     @Override 
     public void onAdClosed() { 
      // Proceed to the next level. 
      setCurrentScene(gameover); 
    res.engine.setScene(gameover); 


    gameover.loadResources(); 
    gameover.create(); 
     } 
    });  

}

(삽입 광고 코드가없는) 위의 코드 내 gameover 장면 전환이 지금까지 내 코드입니다. 삽입 광고 코드를 삽입하면 앱이 다운됩니다. 삽입 광고는 광고를 표시하고, 종료하면 내 게임 오버 장면이 표시됩니다. 올바른 광고 단위 ID를 입력했습니다.

Logcat : looper.prepare()를 호출하지 않은 스레드 내부에서 처리기를 생성 할 수 없습니다.

필자는 이것을 검색하여 해결책을 제시했다. 필자가 수행 한 runonuithread 메서드에 넣어야한다고 나와있다. 도움이 될 것입니다.

답변

0

mainactivity=new MainActivity();을 통해 새 활동을 인스턴스화하고이를 사용할 수 없습니다. 대신 게임의 기본 활동을 gameOver() 메소드에 전달하여 다음을 사용하십시오.

public void showGameOver(Activity yourActivity){ 

    yourActivity.runOnUiThread(new Runnable(){ 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 

     interstitial = new InterstitialAd(mainactivity); 
     interstitial.setAdUnitId("MY AD UNIT ID"); 

     AdRequest adRequest = new AdRequest.Builder().build(); 


     interstitial.loadAd(adRequest); 
     if (interstitial.isLoaded()) { 
      interstitial.show(); 
      } 


    } 

}); 
관련 문제