android - Simple Math Game Crashes in AVD -


i'm building math game chapters 2 , 3 of 'learning java building android games' john horton. i'm near end of 3rd chapter, , have coded how book suggests, game keeps crashing in avd. don't have have read book know i'm talking don't believe, , i'm not looking suggestions on how improve code, because book teaching basic aspects first, delving more complex , concise methodologies. basically, objective of game create app presents user math problem, , give user 3 options answer of questions.

here mainactivity.java:

package snzy.mathgamechapter2;  import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button;  public class mainactivity extends activity implements view.onclicklistener{      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);         button buttonplay = (button) findviewbyid(r.id.buttonplay);         buttonplay.setonclicklistener(this);     }      @override     public void onclick (view view) {          intent i;         = new intent(this, gameactivity.class);         startactivity(i);     } }  

here gameactivity.java:

package snzy.mathgamechapter2;  import android.app.activity; import android.os.bundle; import android.widget.button; import android.widget.textview;  public class gameactivity extends activity {      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_game);         int parta = 9;         int partb = 9;         int correctanswer = parta*partb;         int wronganswer1 = correctanswer - 1;         int wronganswer2 = correctanswer + 1;          textview textobjectparta =                 (textview)findviewbyid(r.id.textparta);         textview textobjectpartb =                 (textview)findviewbyid(r.id.textpartb);         button buttonobjectchoice1 =                 (button)findviewbyid(r.id.buttonchoice1);         button buttonobjectchoice2 =                 (button) findviewbyid(r.id.buttonchoice2);         button buttonobjectchoice3 =                 (button) findviewbyid(r.id.buttonchoice3);          textobjectparta.settext("" + parta);         textobjectpartb.settext("" + partb);         buttonobjectchoice1.settext("" +correctanswer);         buttonobjectchoice2.settext("" + wronganswer1);         buttonobjectchoice3.settext("" + wronganswer2);      } } 

here logcat:

> 06-06 15:46:41.038 6951-6951/? i/art: not late-enabling -xcheck:jni > (already on) 06-06 15:46:41.139 6951-6951/snzy.mathgamechapter2 > w/system: classloader referenced unknown path: > /data/app/snzy.mathgamechapter2-2/lib/x86 06-06 15:46:41.245 > 6951-6951/snzy.mathgamechapter2 d/androidruntime: shutting down vm > 06-06 15:46:41.276 6951-6951/snzy.mathgamechapter2 e/androidruntime: > fatal exception: main >                                                                            process: snzy.mathgamechapter2, pid: 6951 >                                                                            java.lang.runtimeexception: unable start activity > componentinfo{snzy.mathgamechapter2/snzy.mathgamechapter2.mainactivity}: > java.lang.classcastexception: android.widget.relativelayout cannot > cast android.widget.button >                                                                                @ > android.app.activitythread.performlaunchactivity(activitythread.java:2416) >                                                                                @ > android.app.activitythread.handlelaunchactivity(activitythread.java:2476) >                                                                                @ android.app.activitythread.-wrap11(activitythread.java) >                                                                                @ > android.app.activitythread$h.handlemessage(activitythread.java:1344) >                                                                                @ android.os.handler.dispatchmessage(handler.java:102) >                                                                                @ android.os.looper.loop(looper.java:148) >                                                                                @ android.app.activitythread.main(activitythread.java:5417) >                                                                                @ java.lang.reflect.method.invoke(native method) >                                                                                @ > com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726) >                                                                                @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) >                                                                             caused by: java.lang.classcastexception: android.widget.relativelayout > cannot cast android.widget.button >                                                                                @ snzy.mathgamechapter2.mainactivity.oncreate(mainactivity.java:15) >                                                                                @ android.app.activity.performcreate(activity.java:6237) >                                                                                @ > android.app.instrumentation.callactivityoncreate(instrumentation.java:1107) >                                                                                @ > android.app.activitythread.performlaunchactivity(activitythread.java:2369) >                                                                                @ > android.app.activitythread.handlelaunchactivity(activitythread.java:2476)  >                                                                                @ android.app.activitythread.-wrap11(activitythread.java)  >                                                                                @ > android.app.activitythread$h.handlemessage(activitythread.java:1344)  >                                                                                @ android.os.handler.dispatchmessage(handler.java:102)  >                                                                                @ android.os.looper.loop(looper.java:148)  >                                                                                @ android.app.activitythread.main(activitythread.java:5417)  >                                                                                @ java.lang.reflect.method.invoke(native method)  >                                                                                @ > com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726)  >                                                                                @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616)  06-06 > 15:46:55.432 6951-6951/? i/process: sending signal. pid: 6951 sig: 9 

any appreciated.

here activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.coordinatorlayout       xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:fitssystemwindows="true"     tools:context="snzy.mathgamechapter2.mainactivity">      <android.support.design.widget.appbarlayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:theme="@style/apptheme.appbaroverlay">      </android.support.design.widget.appbarlayout>      <include layout="@layout/content_main"         android:id="@+id/buttonplay" />  </android.support.design.widget.coordinatorlayout> 

here content_main.xml

<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingbottom="@dimen/activity_vertical_margin"     android:paddingleft="@dimen/activity_horizontal_margin"     android:paddingright="@dimen/activity_horizontal_margin"     android:paddingtop="@dimen/activity_vertical_margin"     app:layout_behavior="@string/appbar_scrolling_view_behavior"     tools:context="baylamafia.mathgamechapter2.mainactivity"     tools:showin="@layout/activity_main">      <textview         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:textappearance="?android:attr/textappearancelarge"         android:text="my math game"         android:id="@+id/textview"         android:textsize="30sp"         android:layout_alignparenttop="true"         android:layout_centerhorizontal="true" />      <imageview         android:layout_width="150dp"         android:layout_height="150dp"         android:id="@+id/imageview"         android:layout_below="@+id/textview"         android:layout_centerhorizontal="true"         android:layout_margintop="12dp" />      <button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="play"         android:id="@+id/button"         android:layout_below="@+id/imageview"         android:layout_margintop="17dp"         android:layout_alignend="@+id/button2"         android:layout_alignstart="@+id/button2" />      <button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="high scores"         android:id="@+id/button2"         android:layout_below="@+id/button"         android:layout_centerhorizontal="true" />      <button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="quit"         android:id="@+id/button3"         android:layout_below="@+id/button2"         android:layout_alignend="@+id/button2"         android:layout_alignstart="@+id/button2" /> </relativelayout> 

you should post layout/activity_main.xml layout file, guess line:

button buttonplay = (button) findviewbyid(r.id.buttonplay); 

is crashing because r.id.buttonplay in layout relativelayout, not button.