1

エミュレーターでアプリを実行するとすべて正常に動作しますが、デバイス (Huawei u8650) で実行すると NumberFormatException が発生します。

GraphViewData[] aux2 = new GraphViewData[aux.length];
     for(int i=0;i<aux.length;i++)
     {
         System.out.println("reps "+Repetitions+", dato "+i+" = "+aux[i]);
         if(aux[i] != null)
         {
             try{
         aux2[i]= new GraphViewData(i, Double.parseDouble(aux[i]));
             }catch(Exception w)
         {
                 Toast.makeText(this, "num: "+aux[i], Toast.LENGTH_LONG).show();
                 Toast.makeText(this, w.getMessage(), Toast.LENGTH_LONG).show();
         }
         }
}

例外は aux2[i]= new GraphViewData(i, Double.parseDouble(aux[i])); です。OK、あなたは aux[i] が二重に解析するための間違ったフォーマットを持っていると思うかもしれませんが、すべてが次のような数値です: 70.5 またはこのような 84 したがって、実際のデバイスでのみ例外が発生し、エミュレータでは例外が発生する理由がわかりません.

助言がありますか?前もって感謝します。

4

2 に答える 2

0

I は、使用するのとは異なる小数点記号を指定する別のロケールが原因です (通常、期待さ,れ、使用されます.)。,いずれかを.事前の呼び出しに置き換えるだけparseDouble()で問題ありません。

于 2012-09-10T09:49:23.823 に答える