2016-05-31 17 views
-3

Ich kann den Logcat-Bericht nicht dekodieren. Ich lerne Android und versuche, Absicht, Toast und benutzerdefinierten Toast in einzelne App zu implementieren.Anwendung wurde gestoppt. Warum?

Soweit ich weiß, habe ich es richtig gemacht. Ich lege Logcat-Trace an.

FATAL EXCEPTION: main 
Process: com.bt4u.customtoast, PID: 24490 
Theme: themes:{default=overlay:com.rr.neptune, iconPack:system, fontPkg:com.rr.neptune, com.android.systemui=overlay:com.rr.neptune, com.android.systemui.navbar=overlay:com.rr.neptune} 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bt4u.customtoast/com.bt4u.customtoast.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520) 
at android.app.ActivityThread.access$900(ActivityThread.java:153) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5466) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
at com.bt4u.customtoast.MainActivity.onCreate(MainActivity.java:21) 
at android.app.Activity.performCreate(Activity.java:6251) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520)  
at android.app.ActivityThread.access$900(ActivityThread.java:153)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5466)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

Haupttätigkeit

b1 = (Button)findViewById(R.id.button1); 
    b2 = (Button)findViewById(R.id.button2); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    b1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast toast = Toast.makeText(MainActivity.this,"Just clicked",Toast.LENGTH_SHORT); 
      toast.setGravity(Gravity.BOTTOM|Gravity.RIGHT,0,0); 
     } 
    }); 

    b2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(MainActivity.this,second.class); 
      startActivity(i); 
     } 
    }); 
    } 

mir auch sagen, wie das Problem zu finden, indem Sie die Log-Spur

+1

Der relevante Teil 'verursacht wird durch: java.lang.NullPointerException: Versuch, die virtuelle Methode 'void android.widget.Button.setOnClickListener (android.view.View $ OnClickLi stener) 'auf einen Null-Objektverweis bei com.bt4u.customtoast.MainActivity.onCreate (MainActivity.java:21) ', was bedeutet, dass Sie in Ihrer Klasse' MainActivity' versuchen, einen 'onClickListener' auf einem Button zu setzen ist null – NSimon

+0

Aber ich habe überprüft, dass das nicht stimmt. – Swarnveer

+1

Geben Sie einen relevanten Code von Ihrer MainActivity ein – jayeshsolanki93

Antwort

6

mit Sie finden die Reihenfolge umkehren müssen Sie Ihre Tasten sind Einstellung:

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
b1 = (Button)findViewById(R.id.button1); 
b2 = (Button)findViewById(R.id.button2); 

Dies ist sehr wichtig, da Sie zuerst setContentView anrufen müssen, weil das v iiew wird dann verwendet, um view.findViewById aufzurufen. Wenn Sie dies vor dem Festlegen der Ansicht versuchen, können Sie keine Elemente der Ansicht abrufen.

EDIT: Was Ihre zweite Frage, ersetzen:

Toast toast = Toast.makeText(MainActivity.this,"Just clicked",Toast.LENGTH_SHORT); 
     toast.setGravity(Gravity.BOTTOM|Gravity.RIGHT,0,0); 

mit:

Toast.makeText(MainActivity.this,"Just clicked",Toast.LENGTH_SHORT).setGravity(Gravity.BOTTOM|Gravity.RIGHT,0,0).show(); 
+1

Ja, verstanden. Ich vergesse es. Danke – Swarnveer

+0

Gibt es einen Fehler in Toast Teil des Main? Seit ich bekomme Toast-Nachricht beim Ausführen dieser App – Swarnveer

+0

Siehe meine Bearbeitung für Ihr Toast-Problem – NSimon

0

Sie rufen setContentView Methode falschen Ort

super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    b1 = (Button)findViewById(R.id.button1); 
     b2 = (Button)findViewById(R.id.button2); 



     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast toast = Toast.makeText(MainActivity.this,"Just clicked",Toast.LENGTH_SHORT); 
       toast.setGravity(Gravity.BOTTOM|Gravity.RIGHT,0,0); 
      } 
     }); 

     b2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(MainActivity.this,second.class); 
       startActivity(i); 
      } 
     }); 
+0

Gibt es einen Fehler in Toast Teil des Haupt? Da bekomme ich beim Ausführen dieser App eine Toast-Nachricht. – Swarnveer

+0

versuchen Sie dies eins nach dem anderen .... Sie Kommentar und Kommentar Toast Nachricht ..... @Override geschützten void onCreate (Bundle savedInstanceState) { // Toast.makeText (this, "onCreate =", Toast.LENGTH_LONG) .Show(); super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); Toast.makeText (this, "onCreate =", Toast.LENGTH_LONG) .show(); } –

Verwandte Themen