使用AdMob后,应用程序在启动时不断崩溃

时间:2017-03-12 16:05:42

标签: android admob

在我尝试将横幅广告与AdMob 一起使用后,我的应用程序一直在崩溃(没有它一切正常)。加载 SplashScreen 但应用程序在应该开始游戏时崩溃。以下是我实施此步骤的步骤:

1)我确保已安装 Google Play服务 Google存储库

2)然后我使用 Firebase工具助手将我的应用程序连接到 Firebase (它只是在下添加了 google services.json 我的项目中的app文件夹

3)然后我将 AdMob 添加到我的应用中,如下所示:enter image description here

4)我在我的布局中添加了这些代码:

xmlns:ads="http://schemas.android.com/apk/res-auto"

 <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="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>

5)在我的主要活动类中,名为&#34; Game&#34;我将此代码添加到 onCreate()方法,如下所示:

public class Game extends Activity {

//ADMOB
private AdView mAdView;

MediaPlayer sound;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //turn title off
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    //set to full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(new GamePanel(this));

    //ADMOB

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

    int[] sounds={R.raw.chiptune, R.raw.chiptune1, R.raw.chiptune2, R.raw.chiptune3};
    Random r = new Random();
    int Low = 0;
    int High = 4;
    int rand = r.nextInt(High-Low) + Low;
    sound = MediaPlayer.create(getApplicationContext(),sounds[rand]);
    sound.start();
    sound.setLooping(true);
}

6)将其添加到我的字符串中:<string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>

7)在我的AndroidManifest.xml中,我添加了以下代码:

<!-- Include required permissions for Google Mobile Ads to run-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<!--This meta-data tag is required to use Google Play services.-->
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

<!--Include the AdActivity configChanges and theme. -->
    <activity android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:theme="@android:style/Theme.Translucent" />

如果有人可以提供帮助,我知道错了什么!

以下是崩溃日志 enter image description here

1 个答案:

答案 0 :(得分:1)

findViewById(R.id.adView);返回一个View,如果它存在于你在setContentView()中提供的布局中,否则它将返回null,这就是你发生的事情。

mAdView为null,因此您将获得空指针异常。

因此,创建一个layout.xml,嵌入GamePanel视图和AdView,然后将该布局传递给setContentView();方法