2013-03-21 41 views
0

所以,我已经分居类图,我想画有AdMob的,我把它从游戏类,并通过活动作为参数:的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线程上运行该代码。 – 2013-03-21 21:41:07

+0

我该如何捕捉UI线程? – CVS 2013-03-21 21:49:40

回答

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

是的工作tks – CVS 2013-03-21 22:16:55