私はアンドロイドゲームで広告を実装しようとしています。私はAdsというクラスを作成し、次のメソッドを使用してスイッチケース内の別のクラスから呼び出すことにしました。 Googleの広告とAndroidで広告のクラスを呼び出す
public class ControlCenter1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_control_center1);
public ControlCenter1(Context context)
{
mScene = ParrotsConstent.E_SCENARIO.MENU;
mContext = context;
mScore = new Score();
mSound = new Sound(context);
mTimer = new Timer(ParrotsConstent.MAX_TIME);
mAnimalPic = new int[(int) ParrotsConstent.GRID_NUM][(int) ParrotsConstent.GRID_NUM];
mPicBak = new int[(int) ParrotsConstent.GRID_NUM][(int) ParrotsConstent.GRID_NUM];
mEffect = new int[(int) ParrotsConstent.GRID_NUM][(int) ParrotsConstent.GRID_NUM];
mDisappearToken = new int[(int) ParrotsConstent.GRID_NUM][(int) ParrotsConstent.GRID_NUM];
mToken = new ActionTokenPool();
init();
}
public static Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg)
{
switch(msg.what)
{
case GAME_OVER_START:
{
CtlTip2 ctl = (CtlTip2) drawTip2.control;
ctl.init(ParrotsConstent.E_TIP.GAMEOVER.ordinal());
mSound.play(ParrotsConstent.E_SOUND.TIMEOVER);
break;
}
case GAME_OVER_END:
{
Ads ads = new Ads();
ads.Adss();
break;
}
}
}
クラスは次のとおりです。
public class Ads extends AppCompatActivity {
InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ads);
}
public void Adss()
{
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getString(R.string.admob_interstitial_id));
mInterstitialAd.loadAd(adRequest);
mInterstitialAd.setAdListener(new AdListener() {
public void onAdLoaded() {
displayInterstitial();
onPause();
}
public void onAdClosed() {
onResume();
mScene = ParrotsConstent.E_SCENARIO.RESULT;
}
});
}
public void displayInterstitial() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
}
を広告なしでゲームがスムーズに実行されます。私はゲームを実行する前に私はエラーを取得していないが、私はゲームを実行し、私は次の致命的なエラーでゲームを停止してゲームになる。
致命的な例外:メイン プロセス:PID:2566
java.lang.NullPointerException: Attempt to invoke virtual method android.content.res.Resources android.content.Context.getResources()' on a null object reference
at android.content.ContextWrapper.getResources(ContextWrapper.java:86)
at android.view.ContextThemeWrapper.getResourcesInternal(ContextThemeWrapper.java:127) at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:121) atandroid.support.v7.app.AppCompatActivity.getResources(AppCompatActivity.java:549)
at android.content.Context.getString(Context.java:476)
at com.gamingtechnology.parrots.Ads.Adss(Ads.java:69)
at com.gamingtechnology.parrots.Core.ControlCenter1$2.handleMessage(ControlCenter1.java:1188)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
あなたは私の例をしてください与えることはできますか?ありがとう – user3715674
https://developer.android.com/reference/android/app/Activity.html – theblitz
私はメインページに再びあなたを指示として私はそのリンク上の指示に従っているが、私はそれが私の場合にどのようになるか見ることができません。あなたはそれをすることができますか?おそらく私はあなたを助けることができるより多くの情報が必要ですか? – user3715674