2016-11-13 36 views
1

我校的一個項目,我建立使用Android Studio的自己的應用程序。這將是我的第一個應用程序。我也是Android Studio的新手,剛剛開始學習Java。我用python製作了一些遊戲。的Android Studio錯誤:E/AndroidRuntime

由於我是新來的Java應用程序和開發的應用程序是相當基本的。它提供了數學規則和公式,他們可以用它來進行學習測試和這樣的用戶。

我已經完成了對這個問題的研究,我注意到每個人都有不同的代碼,這就是爲什麼我很好奇我是否能夠得到一些關於我的代碼出現問題的答案。

我目前停留在這個錯誤,當我嘗試運行我的應用程序:

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: mcshreker.learnthemalllta, PID: 2876 
        java.lang.RuntimeException: Unable to start activity ComponentInfo{mcshreker.learnthemalllta/mcshreker.learnthemalllta.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.FloatingActionButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
         at android.app.ActivityThread.-wrap11(ActivityThread.java) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
         at android.os.Handler.dispatchMessage(Handler.java:102) 
         at android.os.Looper.loop(Looper.java:148) 
         at android.app.ActivityThread.main(ActivityThread.java:5417) 
         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.support.design.widget.FloatingActionButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
         at mcshreker.learnthemalllta.MainActivity.onCreate(MainActivity.java:120) 
         at android.app.Activity.performCreate(Activity.java:6237) 
         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
         at android.app.ActivityThread.-wrap11(ActivityThread.java)  
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
         at android.os.Handler.dispatchMessage(Handler.java:102)  
         at android.os.Looper.loop(Looper.java:148)  
         at android.app.ActivityThread.main(ActivityThread.java:5417)  
         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)  

這裏是我的代碼(MainActivity.Java):

package mcshreker.learnthemalllta; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Button; 

import static mcshreker.learnthemalllta.R.layout.activity_main; 
import static mcshreker.learnthemalllta.R.layout.activity_main3; 
import static mcshreker.learnthemalllta.R.layout.content_main; 

@SuppressWarnings("ALL") 
public class MainActivity extends AppCompatActivity { 

    private Button button; 
    public Button button2; 
    private Button button4; 
    private Button button5; 
    public Button button3; 
    public Button button7; 


    private void init6(){ 
     button = (Button)findViewById(R.id.button7); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent toy6 = new Intent(MainActivity.this,Main8Activity.class); 
       startActivity(toy6); 
      } 
     }); 
    } 

    private void init5(){ 
     button = (Button)findViewById(R.id.button3); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent toy5 = new Intent(MainActivity.this,Main7Activity.class); 
       startActivity(toy5); 
      } 
     }); 
    } 

    private void init4(){ 
     button = (Button)findViewById(R.id.button2); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent toy4 = new Intent(MainActivity.this,Main5Activity.class); 
       startActivity(toy4); 
      } 
     }); 
    } 

    private void init3(){ 
     button = (Button)findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent toy3 = new Intent(MainActivity.this,Main4Activity.class); 
       startActivity(toy3); 
      } 
     }); 
    } 



    private void init2(){ 
     button5 = (Button)findViewById(R.id.button5); 
     button5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent toy2 = new Intent(MainActivity.this,Main3Activity.class); 

       startActivity(toy2); 
      } 
     }); 
    } 

    private void init(){ 
     button4 = (Button)findViewById(R.id.button4); 
     button4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent toy = new Intent(MainActivity.this,Main2Activity.class); 

       startActivity(toy); 
      } 
     }); 
    } 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     init(); 
     init2(); 
     init3(); 
     init4(); 
     init5(); 
     init6(); 
     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+1

的可能的複製[?什麼是空指針異常,以及如何解決呢(http://stackoverflow.com/questions/218384/what-is -a-NullPointerException異常和知識-DO-I-FIX-IT) – rafid059

+0

你刪除包含在默認情況下,該活動的浮動操作按鈕? –

回答

1

這可能不是確切的問題,但如果你真的讀了錯誤,它會告訴你fab爲空,這表明你可能已經刪除了應用程序中存在的浮動操作按鈕。

嘗試刪除代碼的這一部分:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
fab.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
       .setAction("Action", null).show(); 
    } 
}); 
+0

謝謝!有效! – CodeLife