前提・実現したいこと
いつもお世話になっております。
AndroidStudioで簡単なゲームを作っています。
setOnClickListenerを使った処理を書いたところ、
実機で動作確認をすると、
「アプリは停止しました」というメッセージが出てしまい、動きません。
AndroidStudio上ではエラーは表示されません。
初めてsetOnClickListenerに挑戦しようとした矢先のことで、
途方に暮れています。。
よろしくお願いいたします。
該当のソースコード
Java
1 2package com.hachiya.candyzombie; 3 4import android.app.Activity; 5import android.content.pm.ActivityInfo; 6import android.os.Bundle; 7import android.view.View; 8import android.widget.ImageButton; 9 10public class MainActivity extends Activity { 11 12 @Override 13 protected void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 16 17 setScreenStart(); 18 } 19 20 public void setScreenStart() { 21 setContentView(R.layout.activity_screenstart); 22 23 ImageButton startButton = findViewById(R.id.start_button); 24 25 startButton.setOnClickListener(new View.OnClickListener() { 26 @Override 27 public void onClick(View v) { 28 setScreenRetry(); 29 } 30 }); 31 } 32 33 private void setScreenRetry() { 34 setContentView(R.layout.activity_screenretry); 35 } 36}
xml
1<!--activity_screenstart.xml--> 2 3<?xml version="1.0" encoding="utf-8"?> 4<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:orientation="vertical" 9 android:gravity="center" 10 tools:context=".MainActivity"> 11 12 <ImageButton 13 android:id="@+id/start_button" 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:background="@drawable/start" 17 android:gravity="center" /> 18 19</LinearLayout>
xml
1<!--activity_screenretry.xml--> 2 3<?xml version="1.0" encoding="utf-8"?> 4<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:orientation="vertical" 9 android:gravity="center" 10 tools:context=".MainActivity"> 11 12 <ImageButton 13 android:id="@+id/retry_button" 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:background="@drawable/retry" 17 android:gravity="center" /> 18 19</LinearLayout>
補足
アプリ起動→スタート画面→スタートボタンを押す→リトライ画面
という流れをまず作りたいです。
再補足(エラーログ?)
LogcatでErorrを選択して、実機でアプリを起動させてみるとこのように表示されます。
見方がよくわからないため、全コピーしてあります。
見づらくて申し訳ありません。
06-13 19:14:18.286 30745-30745/? E/Zygote: isWhitelistProcess - Process is Whitelisted
06-13 19:14:18.286 30745-30745/? E/libpersona: scanKnoxPersonas
Couldn't open the File - /data/system/users/0/personalist.xml - No such file or directory
06-13 19:14:18.624 30745-30745/com.hachiya.candyzombie E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.hachiya.candyzombie, PID: 30745
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hachiya.candyzombie/com.hachiya.candyzombie.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6940)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.hachiya.candyzombie.MainActivity.setScreenStart(MainActivity.java:24)
at com.hachiya.candyzombie.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:7174)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6940)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
回答1件
あなたの回答
tips
プレビュー