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)
4

1 に答える 1

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);
    }
});
于 2013-03-21T21:51:27.323 に答える