1

GP 開発者コンソールにクラッシュが記録され続けます。

Caused by: java.lang.NullPointerException
at com.xyz.abc.quizstart.calctracks(SourceFile:690)

690行目は次のとおりです。

687     public void calctracks(){
688         TextView t = (TextView)findViewById(R.id.trackcounttext);
689         Spinner spin= (Spinner)findViewById(R.id.spinner1);
690         String val ="3"; 
691         questionsperplayer=3;
692         val = spin.getSelectedItem().toString();
693         if(val!=""){
694             questionsperplayer = Integer.parseInt(val);
695             totalrequiredquestionsandanswers=playerList.size()*questionsperplayer*4;
696             t.setText(totalrequiredquestionsandanswers + " music tracks required");
697         }else{
698             t.setText("");
699         }
700         
701     }

エミュレータまたは 2 台の電話またはタブレットで NPE を複製できません。admob のクリック数から判断すると、多くのユーザーが問題なくアプリを使用していることがわかります。しかし、私はこれらの約8を週に取得します。

確かに文字列を宣言して値を設定しても、これが発生することはありませんか?

何を試してみますか?

4

4 に答える 4

2

アイテムが選択されていない可能性があります。これを試してください

if(spin.getSelectedItem()!=null)

{

   val = spin.getSelectedItem().toString();

}

于 2013-07-22T08:36:19.140 に答える
2

例外が言及しているソース行は、おそらくアプリの別のバージョンのものです。問題は、投稿されたコードの 692 行目で発生する可能性が高いと思われます。getSelectedItem()を返す場合null

注:文字列の等価性if (val != "")をテストすると、バグがあるようです。val.equals("")また、使用するval.length() == 0ことは最高の私見です。

于 2013-07-22T08:38:18.047 に答える
2

試す

if(spin.getSelectedItem()!=null){    
   val = spin.getSelectedItem().toString();
}

if(!val.equals("")){
  questionsperplayer = Integer.parseInt(val);
  totalrequiredquestionsandanswers=playerList.size()*questionsperplayer*4;
  t.setText(totalrequiredquestionsandanswers + " music tracks required");
 }else{
    t.setText("");
    }
于 2013-07-22T08:41:00.270 に答える
0

関数の先頭にブレークポイントを配置し、ステップ スルーします。行番号が間違っていると思います。

于 2013-07-22T08:39:26.463 に答える