2013-09-10 4 views
-10

Когда я нажимаю запустить приложение, я получаю это сообщение. Кто-нибудь может мне помочь? Я размещаю свой LogCat здесь:К сожалению приложение остановилось. Что означает java.lang.NullPointerException?

09-10 21:40:54.102: E/AndroidRuntime(11894): FATAL EXCEPTION: main 
09-10 21:40:54.102: E/AndroidRuntime(11894): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shoppingapp/com.example.shoppingapp.CurrencyConverter}: java.lang.NullPointerException 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2114) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2139) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.ActivityThread.access$700(ActivityThread.java:143) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.os.Looper.loop(Looper.java:137) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.ActivityThread.main(ActivityThread.java:4963) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at java.lang.reflect.Method.invokeNative(Native Method) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at java.lang.reflect.Method.invoke(Method.java:511) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at dalvik.system.NativeStart.main(Native Method) 
09-10 21:40:54.102: E/AndroidRuntime(11894): Caused by: java.lang.NullPointerException 
09-10 21:40:54.102: E/AndroidRuntime(11894): at com.example.shoppingapp.CurrencyConverter.onCreate(CurrencyConverter.java:36) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.Activity.performCreate(Activity.java:5184) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
09-10 21:40:54.102: E/AndroidRuntime(11894): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2078) 
09-10 21:40:54.102: E/AndroidRuntime(11894): ... 11 more 

Я размещаю здесь класс CurrencyConverter. Я видел строку 36. Может быть, ошибка там, потому что я не нашел simple_spinner_item в R.java ... Что я могу сделать?

package com.example.shoppingapp; 

import com.example.shoppingapp.ConvertECB; 
import com.example.shoppingapp.R; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 

public class CurrencyConverter extends Activity{ 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.start_app); 

     final Button button = (Button) findViewById(R.id.exit); 
     final Button count = (Button) findViewById(R.id.ok); 
     final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     final EditText curr = (EditText) findViewById(R.id.entry); 
     final TextView result = (TextView) findViewById(R.id.converted); 
     final TextView date = (TextView) findViewById(R.id.date); 
     final Spinner spinner = (Spinner) findViewById(R.id.spinner); 
     final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); 

     // stworzenie parsera 

     final ConvertECB cp = new ConvertECB (this); 

     date.setText("Last updated: " + cp.getPubDate() 
       + ". Data received from ECB."); 
     // tablica z symbolami walut 
     final String spinner_array[] = new String[cp.currencyCode.size()]; 

     // przypisanie pobranych symboli do tablicy 
     for (int i = 0; i < cp.currencyCode.size(); i++) { 
      spinner_array[i] = cp.currencyCode.get(i); 
     } 

     // ustawienie tablicy z symbolami walut jako listy dla spinnerow oraz 
     // wygladu 
     ArrayAdapter adapter = new ArrayAdapter(this, 
       android.R.layout.simple_spinner_item, spinner_array); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 
     spinner1.setAdapter(adapter); 

     // okienko pytajace przy probie wyjscia z programu 
     builder.setMessage("Are you sure you want to exit?") 
       .setCancelable(false) 
       .setPositiveButton("Yes", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           finish(); 
          } 
         }) 
       .setNegativeButton("No", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }); 

     // listnery do przyciskow 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       final AlertDialog alert; 
       alert = builder.create(); 
       alert.show(); 
      } 
     }); 
     count.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       try { 

        float value = Float.parseFloat(curr.getText().toString()); 
        value = value 
          * cp.getRelativeExchange(spinner.getSelectedItem() 
            .toString(), spinner1.getSelectedItem() 
            .toString()); 
        result.setText(String.valueOf(value)); 
       } catch (Exception ex) { 
        result.setText(R.string.error); 
       } 
      } 
     }); 
    } 
} 
+0

Ошибка 'NullPointerException', когда вы пытаетесь разыменовать ссылку« null ». Есть ли ссылка в вашей программе «null»? –

+1

Эта ссылка объясняет все причины исключения нулевого указателя. Http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html – DrinkJavaCodeJava

+0

Трассировка стека сообщает вам: «21: 40: 54.102: E/AndroidRuntime (11894): вызвано: java.lang.NullPointerException 09-10 21: 40: 54.102: E/AndroidRuntime (11894): at com.example.shoppingapp.CurrencyConverter.onCreate (CurrencyConverter.java:36) 09- 10 "означает, что что-то, что не было создано, инициализируется в методе onCreate() объекта CurrencyConverter. –

ответ

3

Что java.lang.NullPointerException значит?

Это означает, что вы пытаетесь использовать переменную, возможно, установив на нее метод или прослушиватель. Вот как мы его читаем.

09-10 21: 40: 54,102: E/AndroidRuntime (11894): FATAL ИСКЛЮЧЕНИЕ: главный

это говорит нам о том, что приложение перестало работать. Первая линия, которая говорит нам, что это вызвано

Caused by: java.lang.NullPointerException 

говорит нам NPE. Затем следующая строка после этого, которая ссылается на ваш проект, является хорошим местом для начала.

на com.example.shoppingapp.CurrencyConverter.onCreate (CurrencyConverter.java:36)

линия 36 CurrencyConverter. Что-то есть null там .... попытайтесь выяснить, что и почему. Если вам нужна дополнительная помощь, разместите соответствующий код.

+0

Я публикую класс CurrencyConverter – user2760701

+0

Пожалуйста, не публикуйте весь класс ... просто ' onCreate() ' – codeMagic

+0

Простите за публикацию всего класса. Я видел ваш комментарий сейчас – user2760701

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