2016-12-08 2 views
1

Wenn ich auf einen Button klicke, um von der Hauptaktivität zu meiner "ColoursGame" Aktivität zu wechseln, stürzt die App ab.Neue Aktivität stürzt beim Start ab

Ich bin immer noch ein Anfänger, also kein Experte im Debuggen.

Der Hauptaktivitätscode

Button colorsGame = (Button) findViewById(R.id.colours); 
      colorsGame.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        startActivity(new Intent(MainActivity.this, ColoursGame.class)); 
       } 
      }); 

Manifest neue Aktivität

<activity android:name=".ColoursGame" 
     android:label="ColourGame" 
     android:theme="@style/AppTheme.NoActionBar"></activity> 

ColoursGame Aktivität OnCreate Code

public class ColoursGame extends Activity { 

int livesCount = 3; 
String x; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_colours_game); 

    Button start = (Button) findViewById(R.id.startColors); 
    start.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      vSwitch.showNext(); 
      x = String.valueOf(livesCount); 
      lives.setText(x); 
      text(); 
      textColor(); 
      backgroundColor(); 

      start(); 
     } 
    }); 

} 

Der Fehler

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.aynaar.numbersgameforkids, PID: 3278 
       java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.aynaar.numbersgameforkids/com.aynaar.numbersgameforkids.ColoursGame}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2548) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6077) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference 
        at android.app.Activity.findViewById(Activity.java:2323) 
        at com.aynaar.numbersgameforkids.ColoursGame.<init>(ColoursGame.java:42) 
        at java.lang.Class.newInstance(Native Method) 
        at android.app.Instrumentation.newActivity(Instrumentation.java:1078) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2538) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)  
        at android.app.ActivityThread.-wrap12(ActivityThread.java)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:154)  
        at android.app.ActivityThread.main(ActivityThread.java:6077)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)  
+0

'Taste start = (Button) findViewById (R.id.startColors);' Fehler wird verursacht durch diese Aussage. Stellen Sie sicher, dass Ihr Layout eine Schaltfläche mit der 'startColors' ID hat. – AlphaQ

+0

Sind Sie sicher, dass Sie in Ihrem Layout einen 'Button' namens ** Farben ** haben? – emrekose26

+0

zeigen Sie Ihr Layout von beiden Aktivitäten –

Antwort

0
Button start = (Button) findViewById(R.id.startColors); 

Nach dem Fehler, den Sie auf eine Schaltfläche zu erreichen versuchen, die in Ihrer Aktivität Layout-Datei existiert tut (was auch immer es ist). Überprüfen Sie die ID Ihrer Schaltfläche und vergewissern Sie sich, dass sie auf der Layoutseite Ihrer Aktivität "ColoursGame" platziert ist.

+0

Nein. 'Window.findViewById (int) 'auf eine Null-Objekt-Referenz' ... Das Fenster ist Null. Nicht der Knopf –

1

at com.aynaar.numbersgameforkids.ColoursGame.<init>(ColoursGame.java:42)

nicht findViewById außerhalb von onCreate, rufen Sie gibt es kein Fenster findViewById an diesem Punkt zu nennen.


Wenn Sie noch eine Nullpointer bekommen, dann müssen Sie @+id/startColors haben in activity_colours_game.xml

Answer explanation here

Verwandte Themen