横幅广告不适用于Android Studio。放置横幅广告后,应用崩溃

时间:2019-08-29 05:11:24

标签: java android android-studio ads banner-ads

我想在我的android应用程序中显示横幅广告,但是当我将代码放入.xml并导致类文件应用程序崩溃时。

请参考以下代码

XML文件:

 <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:foregroundGravity="center"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
    </com.google.android.gms.ads.AdView>

在Java文件中:

import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;

 private AdView mAdView;

 mAdView = findViewById(R.id.adView1);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

app gradel文件依赖性:

implementation 'com.google.android.gms:play-services-ads:18.1.0'

清单文件:

android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-3940256099942544/6300978111"

2 个答案:

答案 0 :(得分:0)

首先,您不需要使用具有真实AdMob单元ID的真实帐户进行测试,就可以使用测试广告单元ID。而且不需要检查它是否处于调试模式。

您可以按照这种方式集成AdMob测试横幅广告。

  1. 在项目级别的build.gradle中添加

    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
    
  2. 添加此应用级别的build.gradle

      dependencies {
         implementation 'com.google.android.gms:play-services-ads:17.1.1'
      }
    
  3. 然后将其添加到应用程序标记内的Manifest.xml文件中

      <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
      <meta-data
          android:name="com.google.android.gms.ads.APPLICATION_ID"
          android:value="[ADMOB_APP_ID]"/>
    
  4. 然后在您的布局XML文件中

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        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="ca-app-pub-3940256099942544/6300978111">
    </com.google.android.gms.ads.AdView>
    
  5. 然后在您的活动中执行此操作

    package ...
    
    import ...
    import com.google.android.gms.ads.AdRequest;
    import com.google.android.gms.ads.AdView;
    
    public class MainActivity extends AppCompatActivity {
        private AdView mAdView;
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            MobileAds.initialize(this,
                "ca-app-pub-3940256099942544~3347511713");
            mAdView = findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);
        }
    }
    

然后它将在所有设备上完美运行。之后,您只需替换admob应用ID和横幅广告单元ID。希望对您有帮助。

答案 1 :(得分:0)

我的应用程序存在相同的问题,我必须向我的应用程序清单文件中添加一些元数据

<application>
<meta-data
        android:name="com.google.android.gms.ads.AD_MANAGER_APP"
        android:value="true"/>
<meta-data
        android:name="com.google.android.gms.ads.com.example.appname"
        android:value="enter your AdMob App ID e.g. ca-app-pub-3940256099942544~3347511713"/>
</application>

从Google Mobile Ads SDK版本17.0.0开始,此步骤是必需的。添加此标签失败会导致以下消息崩溃:Google Mobile Ads SDK初始化不正确。 欲了解更多信息,请访问 https://developers.google.com/admob/android/quick-start#update_your_androidmanifestxml

https://developers.google.com/ad-manager/mobile-ads-sdk/android/quick-start#update_your_androidmanifestxml