0

im, делающий простой калькулятор калорий, и он дает мне эту ошибку, я уже просмотрел код и искал здесь решение, но им не удалось понять, почему не работает. я думал, что это было, потому что я не инициализируется переменная, поэтому я сделал это и до сих пор получил ту же ошибку, может быть что-то с блесен, им новое на использовании блесенjava.lang.runtimeexception не удалось запустить activity componentinfo java.lang.nullpointerexception android

вот код:

public class CaloriesCalculator extends ActionBarActivity { 

EditText etAge, etWeight, etHeight; 
Button btnCalculate; 
TextView tvResult; 
Spinner spinnerGender, spinnerActivity; 
String itemGender, itemActivity; 
int Height=0; 
int Weight=0; 
int Age=0;; 
double bmr=0.0; 
double tdee=0.0; 
String result; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.caloriescalculator); 

    spinnerGender=(Spinner)findViewById(R.id.spinnerGender); 
    spinnerActivity=(Spinner)findViewById(R.id.spinnerActivity); 

    etAge=(EditText)findViewById(R.id.etAge); 
    etWeight=(EditText)findViewById(R.id.etWeight); 
    etHeight=(EditText)findViewById(R.id.etHeight); 
    tvResult=(TextView)findViewById(R.id.tvResult); 

    List<String> list = new ArrayList<String>(); 
    list.add("Male"); 
    list.add("Female"); 


    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_dropdown_item, list); 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinnerGender.setAdapter(dataAdapter); 


     List<String> list2 = new ArrayList<String>(); 
     list.add("Sedentary"); 
     list.add("Lightly Active"); 
     list.add("Moderalety Active"); 
     list.add("Very Active"); 
     list.add("Extremely Active"); 

     ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_dropdown_item, list2); 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinnerActivity.setAdapter(dataAdapter2); 

      btnCalculate.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 

        spinnerGender.setOnItemSelectedListener(new OnItemSelectedListener() { 

         @Override 
         public void onItemSelected(AdapterView<?> parent, 
           View view, int position, long id) { 


         } 

         @Override 
         public void onNothingSelected(AdapterView<?> parent) { 
          // TODO Auto-generated method stub 

         } 

        }); 

        spinnerActivity.setOnItemSelectedListener(new OnItemSelectedListener() { 

         @Override 
         public void onItemSelected(AdapterView<?> parent, 
           View view, int position, long id) { 
          // TODO Auto-generated method stub 

         } 

         @Override 
         public void onNothingSelected(AdapterView<?> parent) { 
          // TODO Auto-generated method stub 

         } 
        }); 


        itemGender=String.valueOf(spinnerGender.getSelectedItem()); 
        itemActivity=String.valueOf(spinnerActivity.getSelectedItem()); 

        if(itemGender=="Male"){ 

         Weight=Integer.parseInt(etWeight.getText().toString()); 
         Height=Integer.parseInt(etHeight.getText().toString()); 
         Age=Integer.parseInt(etAge.getText().toString()); 

         if(itemActivity=="Sedentary"){ 

          bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age); 
          tdee=bmr*1.2; 



         } 

         else if(itemActivity=="Lightly Active"){ 
          bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age); 
          tdee=bmr*1.375; 

         } 

         else if(itemActivity=="Moderalety Active"){ 
          bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age); 
          tdee=bmr*1.55; 
         } 

         else if(itemActivity=="Very Active"){ 
          bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age); 
          tdee=bmr*1.725; 
         } 

         else if(itemActivity=="Extremely Active"){ 
          bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age); 
          tdee=bmr*1.9; 
         } 




        } 

        else if(itemGender=="Female") { 

         Weight=Integer.parseInt(etWeight.getText().toString()); 
         Height=Integer.parseInt(etHeight.getText().toString()); 
         Age=Integer.parseInt(etAge.getText().toString()); 

         if(itemActivity=="Sedentary"){ 

          bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age); 
          tdee=bmr*1.2; 


         } 

         else if(itemActivity=="Lightly Active"){ 
          bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age); 
          tdee=bmr*1.375; 

         } 

         else if(itemActivity=="Moderalety Active"){ 
          bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age); 
          tdee=bmr*1.55; 
         } 

         else if(itemActivity=="Very Active"){ 
          bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age); 
          tdee=bmr*1.725; 
         } 

         else if(itemActivity=="Extremely Active"){ 
          bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age); 
          tdee=bmr*1.9; 
         } 


        } 

        result=Double.toString(tdee); 

        tvResult.setText(result); 




       } 
      }); 


} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.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(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

LogCat:

11-28 17:20:05.501: E/AndroidRuntime(1455): FATAL EXCEPTION: main 
11-28 17:20:05.501: E/AndroidRuntime(1455): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.calculadoracalorias/com.app.calculadoracalorias.CaloriesCalculator}: java.lang.NullPointerException 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.os.Looper.loop(Looper.java:137) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.ActivityThread.main(ActivityThread.java:5103) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at java.lang.reflect.Method.invoke(Method.java:525) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at dalvik.system.NativeStart.main(Native Method) 
11-28 17:20:05.501: E/AndroidRuntime(1455): Caused by: java.lang.NullPointerException 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at com.app.calculadoracalorias.CaloriesCalculator.onCreate(CaloriesCalculator.java:67) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.Activity.performCreate(Activity.java:5133) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
11-28 17:20:05.501: E/AndroidRuntime(1455):  ... 11 more 
11-28 17:24:42.341: D/AndroidRuntime(1507): Shutting down VM 
11-28 17:24:42.341: W/dalvikvm(1507): threadid=1: thread exiting with uncaught exception (group=0x41465700) 
11-28 17:24:42.371: E/AndroidRuntime(1507): FATAL EXCEPTION: main 
11-28 17:24:42.371: E/AndroidRuntime(1507): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.calculadoracalorias/com.app.calculadoracalorias.CaloriesCalculator}: java.lang.NullPointerException 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.os.Looper.loop(Looper.java:137) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.ActivityThread.main(ActivityThread.java:5103) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at java.lang.reflect.Method.invoke(Method.java:525) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at dalvik.system.NativeStart.main(Native Method) 
11-28 17:24:42.371: E/AndroidRuntime(1507): Caused by: java.lang.NullPointerException 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at com.app.calculadoracalorias.CaloriesCalculator.onCreate(CaloriesCalculator.java:70) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.Activity.performCreate(Activity.java:5133) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
11-28 17:24:42.371: E/AndroidRuntime(1507):  ... 11 more 
+1

Что такое линия 67? 'Caused by: java.lang.NullPointerException в com.app.calculadoracalorias.CaloriesCalculator.onCreate (CaloriesCalculator.java:67)' Также, строка 70. (что, если вы сообщите нам, что я могу найти 70) – csmckelvey

+0

о коде ? строка 67: dataAdapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); линия 70 является: btnCalculate.setOnClickListener (новый OnClickListener() { –

+0

IS List2 пустой список Список песни2 = новый ArrayList (); list.add ("сидячий"); – said

ответ

1

Yout btnCalculate имеет нулевое значение, вы должны инициализировать перед выполнением onclickListener:

btnCalculate = (Button)findViewById(R.id.btnCalculate); //your id 

отметить также, что вы инициализации dataAdapter2, но на самом деле вы используете dataAdapert и песни2 не имеют каких-либо элементов, потому что вы объявляете его, но у наполняются всегда песни1

+0

это была проблема, спасибо mane: D –

Смежные вопросы