在我尝试将横幅广告与AdMob 一起使用后,我的应用程序一直在崩溃(没有它一切正常)。加载 SplashScreen 但应用程序在应该开始游戏时崩溃。以下是我实施此步骤的步骤:
1)我确保已安装 Google Play服务和 Google存储库
2)然后我使用 Firebase工具助手将我的应用程序连接到 Firebase (它只是在下添加了 google services.json 我的项目中的app文件夹
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" />
如果有人可以提供帮助,我知道错了什么!
答案 0 :(得分:1)
findViewById(R.id.adView);
返回一个View,如果它存在于你在setContentView()中提供的布局中,否则它将返回null,这就是你发生的事情。
mAdView为null,因此您将获得空指针异常。
因此,创建一个layout.xml,嵌入GamePanel视图和AdView,然后将该布局传递给setContentView();方法