Admob广告无法加载。 错误2.它之前有效,但突然停止了

以下是我尝试将横幅广告加载到(createAd()方法中的整个类)

public class HomeActivity extends Activity { private HomeView homeView; private ImageView playButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // playButton = (ImageView)findViewById(R.id.playButton); // playButton.setImageBitmap(BitmapFactory.decodeResource(getResources(), // R.drawable.play)); // setListener(); setContentView(R.layout.home_main); createAd(); } private void setListener (){ playButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { playButton.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.play2)); playGame(); } }); } private void createAd(){ setContentView(R.layout.home_main); AdView adView = (AdView)findViewById(R.id.bottomAd); AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); adRequestBuilder.addTestDevice("FEACCF89D31180ABDD853C9C3DD2E871"); // .addTestDevice("1744314CD0C7B0619F94D44CE2E5093E"); adView.loadAd(adRequestBuilder.build()); } public void playGame() { SharedPreferences savedData = getApplicationContext() .getSharedPreferences("lastScore", Context.MODE_PRIVATE); int score = savedData.getInt("lastScore", Context.MODE_PRIVATE); Intent intent = new Intent(HomeActivity.this, GamePlay.class); intent.putExtra("lastScore", score); startActivity(intent); finish(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 

这是home_main的xml

     

这是我最近一次运行后的日志

  01-01 16:00:32.235 26387-26387/com.rune.colorhunt D/OpenGLRenderer﹕ Enabling debug mode 0 01-01 16:00:32.275 652-796/? I/CrashAnrDetector﹕ onPackageUpdateFinished : com.rune.colorhunt 01-01 16:00:37.351 26387-26416/com.rune.colorhunt D/dalvikvm﹕ DexOpt: --- BEGIN 'ads976472321.jar' (bootstrap=0) --- 01-01 16:00:37.361 26387-26387/com.rune.colorhunt V/WebViewChromium﹕ Binding Chromium to the main looper Looper (main, tid 1) {41d00b38} 01-01 16:00:37.361 26387-26387/com.rune.colorhunt I/chromium﹕ [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0 01-01 16:00:37.361 26387-26387/com.rune.colorhunt I/BrowserProcessMain﹕ Initializing chromium process, renderers=0 01-01 16:00:37.391 26387-26426/com.rune.colorhunt W/chromium﹕ [WARNING:proxy_service.cc(888)] PAC support disabled because there is no system implementation 01-01 16:00:37.421 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request. 01-01 16:00:37.441 26387-26416/com.rune.colorhunt D/dalvikvm﹕ DexOpt: --- END 'ads976472321.jar' (success) --- 01-01 16:00:37.441 26387-26416/com.rune.colorhunt D/dalvikvm﹕ DEX prep '/data/data/com.rune.colorhunt/cache/ads976472321.jar': unzip in 0ms, rewrite 91ms 01-01 16:00:37.611 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 11 01-01 16:00:37.611 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 12 01-01 16:00:37.621 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 13 01-01 16:00:37.621 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 14 01-01 16:00:37.651 26387-26431/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2 01-01 16:00:37.691 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now. 01-01 16:00:37.691 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2 01-01 16:01:37.715 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request. 01-01 16:01:37.825 26387-26490/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2 01-01 16:01:37.845 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now. 01-01 16:01:37.845 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2 01-01 16:02:37.889 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request. 01-01 16:02:38.009 26387-26531/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2 01-01 16:02:38.039 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now. 01-01 16:02:38.039 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2 01-01 16:03:38.972 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request. 01-01 16:03:39.062 26387-26783/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2 01-01 16:03:39.062 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now. 01-01 16:03:39.062 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2 

如果有人会帮助我,那将是惊人的。 我完全不知道问题是什么。 也许我错过了一些非常简单的东西,只需要另一双眼睛。 任何帮助表示赞赏,谢谢。

检查您的设备是否具有正确的互联网连接。 没有互联网连接,您将无法获得广告。

Admob广告无法加载。 如果设备上的日期或时间错误,则会出现错误2,只需在设备上设置自动更正

错误号2表示ERROR_CODE_NETWORK_ERROR。 所以检查你的互联网连接,仍然没有显示广告,然后只需重新启动你的手机并检查…这对我有用….

另一个问题可能是这篇post中提到的adblocker应用程序:@Durian的https://stackoverflow.com/a/36010639/3596576 。

对我来说这就是问题所在。

我有同样的问题,广告没有出现在物理测试设备屏幕上。

我关闭了我的wifi并开始使用3g移动数据,然后我的广告开始出现在物理测试设备上。

我也有不同的依赖:

 com.google.android.gms:play-services-ads:9.2.0 

而不是11.6.2

首先要明确您要加载哪种types的添加,插页式广告或横幅广告。 如果您要加载横幅广告,请在admob网站上创建横幅广告ad_unit_id,然后直接在您的活动视图中使用AdView,如下所示:

   

并且只是请求从您的代码加载横幅广告,如下所示:在setcontentview之后在oncreate中的活动中写下此代码

 AdView mAdView = (AdView) findViewById(R.id.xadView); AdRequest adRequest = new AdRequest.Builder().addTestDevice( AdRequest.DEVICE_ID_EMULATOR).build(); mAdView.loadAd(adRequest); 

如果您要加载intertial广告,请在admob网站上创建插页式广告ad_unit_id,然后在以下方法中使用它:

 public void showFullScreenAd() { try { com.google.android.gms.ads.InterstitialAd interstitial = new com.google.android.gms.ads.InterstitialAd(context); interstitial .setAdUnitId(ADMOB_INTERSTITIAL_AD_UNIT_ID); // Check the logcat output for your hashed device ID to get test ads // on // a physical device. com.google.android.gms.ads.AdRequest adRequest = new AdRequest.Builder() .build(); // Load the interstitial ad. interstitial.loadAd(adRequest); interstitial .setAdListener(new com.google.android.gms.ads.AdListener() { @Override public void onAdLoaded() { interstitial.show(); } }); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

注意:重要的是,有时我们会在插页式广告中使用横幅广告单元ID或在横幅广告中使用插页式广告单元ID,因此会发生此错误。

我有类似的问题。 互联网连接正常,没有安装广告拦截器。

该问题可能与您的测试设备有关。 检查您的测试设备是否包含其他包含Admob的应用程序。 您还可以查看其他设备和其他包含Admob的应用。

在我的情况下,我意识到我的测试设备有互联网连接,但没有在不同的应用程序中显示任何Admob广告。 所以我试图重新启动我的测试设备,它工作。

此行为是由应用一次制作过多广告请求引起的,这会导致SDK处于错误状态。 通过清除所有数据可以有效地重新启动Google Play服务,为我解决了这个问题。 针对此问题的SDK修补程序将包含在下一个Google Play服务版本中。 在您的设备获取更新后,您无需更新应用。 这是sdk的已知问题

如果使用真实设备,请检查其他应用,如果广告已展示,则表示它们包含广告。 还可以单独检查移动网络和Wi-Fi。

对我而言,它不会仅在移动网络和所有应用中显示。 删除Google Play服务数据可以帮助我,广告又会重新开始显示。 直到GPS下载其数据。 所以它工作了大约一分钟。 😀

尝试在谷歌服务中将“禁用移动网络上的后台数据”设置为禁用,它对我有用