2014-02-06 3 views
-2

это код.«К сожалению, (имя приложения) остановлено»

package t.t; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class StartingPoint extends Activity { 
    int counter; 
    Button add, sub; 
    TextView display; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_starting_point); 
     add=(Button) findViewById(R.id.bAdd); 
     add=(Button) findViewById(R.id.bSub); 
     display=(TextView) findViewById(R.id.tvDisplay); 
     add.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       counter+=1; 
       display.setText("Your total is" +counter); 
      } 
     }); 
     sub.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       counter--; 
       display.setText("Your total is" +counter); 
      } 
     }); 

    } 


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

} 
+7

Опубликовать код деятельности – Raghunandan

+5

null указатель на строке 32 в 'StartingPoint.java'. вы можете использовать объект, который еще не был инициализирован. – cosmincalistru

+0

Я не знаю, почему он не позволяет мне редактировать – user3280351

ответ

2

Вы получаете исключения нулевого указателя:

02-06 10: 57: 50,604: E/AndroidRuntime (2622): Вызванный: java.lang.NullPointerException 02-06 10: 57: 50.604: E/AndroidRuntime (2622): at ttStartingPoint.onCreate (StartingPoint.java:32)

Журнал сообщает вам, в чем проблема и где это происходит: в этом случае проблема возникает в StartPoint .java в классе StartingPoint в методе onCreate в строке 32.

Редактировать после просмотра кода:

Итак, проблема в том, что вы не устанавливаете Sub ни для чего. Я думаю, что вы имели в виду, чтобы сделать это с помощью этой линии:

add=(Button) findViewById(R.id.bSub); 

Изменить это:

sub=(Button) findViewById(R.id.bSub); 

И затем повторите попытку.

+0

Вы просматриваете строку 32 и видите, что является нулевым, и сделать ее не равной нулю. Не видя кода, мы не можем помочь исправить это. –

+0

Я разместил код – user3280351

+0

pdxandroid увидел проблему.i исправил ее. спасибо: d – user3280351

0

Try инициализацией counter с:

int counter = 0; 

Вы всегда должны инициализировать int S, поскольку они не могут быть null. Integer s, да ... int s нет.


EDIT: Очевидно, что Java не работает так же, как C++, когда забывает инициализировать int. Этот ответ не решит вашу проблему, но инициализация всех переменных по-прежнему является хорошей практикой.

+0

На самом деле Java будет инициализировать int до 0, и это не даст NPE. –

+0

Интересно. Наверное, я никогда не сталкивался с этой проблемой, так как я привык к инициализации при записи на C++. Различия между режимами Debug и Release убили меня, когда я впервые начал работать в VS. Независимо от того, решит ли это его проблему (это не так), это по-прежнему хорошая практика. – dberm22

+0

Я слышу тебя. Я сам из C/C++, поэтому я все еще инициализирую это. –

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