2

我创建了一个带有 webview 的应用程序,用于显示 AdMob。我正在使用以下代码。

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) error,而不是收到广告。

4

1 回答 1

1

您是否已将您的INTERNET 权限添加到您的 Manifest 文件并确保该设备确实可以访问 Internet

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

您手机上的其他应用程序是否可以访问互联网?我的意思是您是否测试过其他应用程序是否能够访问互联网?也许这不是您的应用程序的问题,而是手机通常出于某种原因无法访问互联网的问题。

此外,我在您上面的代码中看到的内容:

在调用“setContentView(...)”之前,您正在调用“layout = findViewById(...)”。这实际上应该在调用 layout.addView() 时导致 Nullpointer 异常。

您也可以尝试此代码(在您的 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 回答