1

エミュレーターを使用している間はアプリケーションがうまく動作しますが、実際のデバイスで作業しているときにクラッシュします。Android 2.2用にコーディングしています。実際のデバイスは 2.3.6 です。

問題はここにあります:

私がそのようなものを使うとき:

tvPlayerOneScores.setText("-" + numberFormat.format(level));

エミュレーターと実際のデバイスの両方でうまく機能します。

しかし、私がこれを試すと:

tvPlayerOneScores.setText("-" + numberFormat.format(level * 0.5f));

エミュレーターでは動作しますが、実際のデバイスではクラッシュします。

スタックトレース:

java.lang.NumberFormatException
    at org.apache.harmony.luni.util.FloatingPointParser.parseFltImpl(Native Method)
    at org.apache.harmony.luni.util.FloatingPointParser.parseFloat(FloatingPointParser.java:321)
    at java.lang.Float.parseFloat(Float.java:323)
    at java.lang.Float.valueOf(Float.java:362)
    at com.amrotek.truthordare.GameActivity$4.onClick(GameActivity.java:287)
    at android.view.View.performClick(View.java:2552)
    at android.view.View$PerformClick.run(View.java:9229)
    at android.os.Handler.handleCallback(Handler.java:587)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3701)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
    at dalvik.system.NativeStart.main(Native Method)

編集:すべての値を 10 倍したので、算術演算を行うときは整数のみを使用します。最後に、終了値を10で割るだけです。うまくいきます:)

4

1 に答える 1

1

コメントではなく、質問に誤った行を含める必要がありました。

playerOnePoints = Float.valueOf(numberFormat.format(playerOnePoints - level * 0.5f));

結論を出すには十分ではないため、チェックする項目の短いリストを次に示します。

  1. numberFormatで数値を元に戻すためだけに、数値を でフォーマットする必要があるのはなぜvalueOfですか?

  2. は何ですかnumberFormat、それは本当に有効な浮動小数点文字列を生成しますか?

  3. playerOnePointsフロートまたはフロートですか?parseFloat()の代わりに使用しないでくださいvalueOf()

最後に、それでも問題を解決できない場合は、前述の行を単純なものに置き換えることをお勧めします。

playerOnePoints = playerOnePoints - level * 0.5f;

それはトリックを行う必要があります=)

ps。Math.floor()/ceil()私があなたの意図をparseFloat()/numberFormat()正しく理解していれば、あなたも と知り合いたいと思うかもしれません。

于 2012-10-30T23:23:21.790 に答える