首页 > 解决方案 > 横幅广告不适用于 Android 工作室。放置横幅广告后应用程序崩溃

问题描述

我想在我的 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);

appgradel文件依赖:

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"

标签: javaandroidandroid-studioadsbanner-ads

解决方案


首先,您无需使用具有真实 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。希望它会帮助你。


推荐阅读