java - 出现广告响应 Admob 错误

标签 java android admob

我想将一个源代码从旧的 GoogleAds SDK 更新到新的 Google Play Service Library,但是出现了问题。每次我收到此错误时:

获取广告响应时出现问题。

ErrorCode: 0

Failed to load ad:0

这是来自 playactivty 的代码:

public String BANNER_AD_UNIT_ID;

AdRequest adRequest;

private void LoadAds()
{
    LinearLayout layout = (LinearLayout) findViewById(R.id.adView);
    this.BANNER_AD_UNIT_ID = getResources().getString(R.string.admob_id);
    // Create the adView
    AdView adView = new AdView(this);
    adView.setAdSize(AdSize.BANNER);
    adView.setAdUnitId(BANNER_AD_UNIT_ID);

    // Add the adView to it
    layout.addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest adRequest = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .build();
//  AdRequest.setTesting(true);
    adView.loadAd(adRequest);   
}

来自layout.xml

    </RelativeLayout>

  <com.google.android.gms.ads.AdView

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    ads:adSize="BANNER"
    ads:adUnitId="@string/admob_id">
</com.google.android.gms.ads.AdView>
<LinearLayout
        android:orientation="horizontal"
        
        android:id="@+id/adView" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    
</LinearLayout>

我在那里做错了什么?找不到问题,相信我,我阅读了所有关于该错误的 SOF 帖子:)

非常感谢!

编辑:

原代码:

PlayActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_play);
    LoadConfigParams();
    LoadSharedPreferences();
    LoadResources();
    LoadListeners();        
    LoadStage(mCurStage);
    LoadAds();
        

}

    private void LoadAds()
{
    LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayoutAdmob);

    // Create the adView
    AdView adView = new AdView(this, AdSize.SMART_BANNER, getResources().getString(R.string.admob_id));

    // Add the adView to it
    layout.addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest request = new AdRequest();
    request.setTesting(true);
    adView.loadAd(request); 
}

activity_play.xml(只有最后一个 LinearLayout 代码,上面是 RelativeLayout)。

    <LinearLayout
        android:id="@+id/linearLayoutAdmob" android:layout_width="fill_parent"
        android:layout_height="wrap_content"></LinearLayout>

最佳答案

通过 javaxml 创建 Admob 有两种方法,最简单的方法(尽管两者都很简单)是xml。此外,如果您使用 SMART_BANNER,您将获得不同尺寸的广告,如果尺寸不适合/匹配剩余的屏幕空间,您的RelativeLayout 已离开 LinearLayout 您的添加将不会显示。所以我假设你已经处理好了

<LinearLayout
    android:id="@+id/linearLayoutAdmob" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

     <com.google.android.gms.ads.AdView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      ads:adSize="SMART_BANNER"
      android:id="@+id/myaddview"
      ads:adUnitId="@string/admob_id">
</LinearLayout>

然后在您的 loadAds()

AdView adView = findViewById(R.id.myaddview); //add the cast
 AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
adView.loadAd(adRequest);   

这就是您需要的全部检查 this知道要导入什么并仔细检查您的权限

关于java - 出现广告响应 Admob 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29833509/

相关文章:

ios - SKAdNetwork : still need third party sdk to measure FB or Google campaigns performance?

Android - AdView 缺少必需的 XML 属性 'adSize'

java - AspectJ 和 PostSharp 之间的功能差异是什么?

java - 同步如何在 Java 中工作?

java - 猜谜游戏范围

android - 以编程方式停用 Android 中的设备管理员?

java - 无法在 eclipse galileo 中安装 egit 插件

android widget 和 localservice 绑定(bind)

android - 如何隐藏android微调器下拉列表中的第一项?

android - AdMob:AdLoader 在获取 URL 时 60000 毫秒后超时