2013-03-21 3 views
0

그래서, 난 그리기위한 클래스를 분리했고, 나는 게임 클래스에서 호출하고 매개 변수로 활동 통과가 몹을 그리려 :AdMob은 캔버스

public void drawAddMob(Activity a){ 
LinearLayout ll = new LinearLayout(a); 
ll.setPadding(0, 50, 0, 0); 
adView = new AdView(a, AdSize.BANNER, "a15140cd49b6e7b"); 
AdRequest request = new AdRequest(); 
adView.loadAd(request); 
adView.setVisibility(View.VISIBLE); 

ll.addView(adView); 

ll.draw(canvas); 
} 

을하지만 난이 작업을 수행 할 때이 오류가 :

03-21 23:35:09.646: W/System.err(333): 
java.lang.RuntimeException: Can't create handler 
inside thread that has not called Looper.prepare() 
03-21 23:35:09.656: W/System.err(333): 
at com.google.ads.internal.AdWebView.<init> (SourceFile:69) 
+1

UI 스레드에서 해당 코드를 실행해야합니다. –

+0

어떻게 UI 스레드를 잡을 수 있습니까? – CVS

답변

1

UI를 변경하기 때문에 UI 스레드에서이 코드를 실행해야합니다. 방법 본문에 대해 다음을 시도하십시오.

a.runOnUiThread(new Runnable() { 
    public void run() { 
     LinearLayout ll = new LinearLayout(a); 
     ll.setPadding(0, 50, 0, 0); 
     adView = new AdView(a, AdSize.BANNER, "a15140cd49b6e7b"); 
     AdRequest request = new AdRequest(); 
     adView.loadAd(request); 
     adView.setVisibility(View.VISIBLE); 

     ll.addView(adView); 

     ll.draw(canvas); 
    } 
}); 
+0

옙 working tks – CVS