2

AdMob を表示するための WebView を備えたアプリケーションを作成しました。次のコードを使用しています。

private AdView adView;  
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_main);
    LinearLayout layout = (LinearLayout) findViewById(R.id.linearlayout1);
    adView = new AdView(this, AdSize.BANNER, "/6253334/dfp_example_ad"); 
    View view = addHome(this,"https://www.google.co.in/");
    layout.addView(view,new LinearLayout.LayoutParams(200, 100));
    final AdRequest adRequest = new AdRequest();   
    adRequest.addTestDevice("1CD0A829B8C49C9F7590DD3B4C5EC553");
    adRequest.setTesting(true);
    setContentView(layout);
    new Thread(){
        public void run() {
            Looper.prepare();               
            adView.loadAd(adRequest);                
        };
    }.start();
} 

広告を取得する代わりに、常にonFailedToReceiveAd(A network error occurred) エラーが発生します。

4

1 に答える 1

1

インターネット許可をマニフェスト ファイルに追加し、デバイスが実際にインターネットにアクセスできることを確認しましたか?

<uses-permission android:name="android.permission.INTERNET" /> 

電話機の他のアプリケーションはインターネットにアクセスできますか? つまり、他のアプリがインターネットにアクセスできるかどうかをテストしましたか? おそらくこれはあなたのアプリケーションの問題ではなく、何らかの理由で一般的に電話がインターネットにアクセスできないという問題です.

さらに、上記のコードで私が見ているもの:

「setContentView(...)」を呼び出す前に、「layout = findViewById(...)」を呼び出しています。これにより、実際には、layout.addView() を呼び出すときに Nullpointer Exception が発生するはずです。

このコードを試すこともできます ( onCreate() メソッド内で):

   setContentView(R.layout.yourlayout);

   AdView ad = new AdView(this, AdSize.SMART_BANNER, "yourid");

   LinearLayout ll = (LinearLayout) findViewById(R.id.linearlayout1);

   if (ll != null) {
      ll.addView(ad);
   }

   ad.loadAd(new AdRequest());
于 2013-08-16T12:51:46.873 に答える