我在展示AdMob横幅方面遇到了一些问题。我收到错误1,意思是ERROR_CODE_INVALID_REQUEST
。当我更改setAdUnitId
并使用UnitId
进行测试时,它可以正常运行。但是当我使用UnitId
提供的AdMob
时,我收到错误。
这是布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#262626"
tools:context="com.elis91.elis.contatti.Contatti">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#1e88e6"
android:orientation="horizontal">
<TextView
android:id="@+id/textView5MSGnonLetti"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="You have 0 new messagges"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#cdfff9f9"
android:textSize="20dp"/>
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/linearLayout"
android:layout_above="@+id/relativeLayout3"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="52dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/relativeLayout3"
android:gravity="bottom">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@+id/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
这是Android:
private void setupGoogleAds(){
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
//.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
mAdView.loadAd(adRequest);
mAdView.setAdListener(new AdListener() {
@Override
public void onAdOpened() {
Log.d("esx", "onAdOpened");
// Save app state before going to the ad overlay.
}
@Override
public void onAdLoaded() {
Log.d("esx", "onAdLoaded");
// Save app state before going to the ad overlay.
}
@Override
public void onAdFailedToLoad(int errorCode) {
Log.d("esx", "onAdFailedToLoad: " + errorCode+"--"+AdRequest.ERROR_CODE_NO_FILL+"-"+AdRequest.ERROR_CODE_NETWORK_ERROR+"-"+AdRequest.ERROR_CODE_INVALID_REQUEST+"-"+AdRequest.ERROR_CODE_INTERNAL_ERROR+"-");
// Save app state before going to the ad overlay.
}
@Override
public void onAdClosed() {
Log.d("esx", "onAdClosed");
// Save app state before going to the ad overlay.
}
@Override
public void onAdLeftApplication() {
Log.d("esx", "onAdLeftApplication");
// Save app state before going to the ad overlay.
}
});
}
答案 0 :(得分:3)
ERROR_CODE_INVALID_REQUEST 表示:
广告请求无效;例如,广告单元ID是 不正确。
检查您是否传递了正确的广告单元ID。
我检查了你的代码并认为问题就在这里。
你写过
ads:adUnitId="@+id/banner_ad_unit_id"
你一定要打算写
ads:adUnitId="@string/banner_ad_unit_id"
假设您已将广告单元ID存储在字符串资源中。如果它不在您的字符串资源中,请按如下方式直接输入:
ads:adUnitId="XXXXXXXXXXXXXXXX" // Replace XXXXXXXXXXXXXXXX with your ad unit id.