-1

データをアプリにストリーミングするサーバーに接続されている ADS-B 受信機によってピックアップされた飛行機を追跡する大学プロジェクト用のアプリを開発しようとしています。

これを行うために、航空機の位置を追跡する「Aircraft」クラスを作成しました。航空機の位置は、各航空機の固有の Mode-S 16 進コードと、検出された各航空機の ArrayList によって識別できます。

これは、Aircraft オブジェクトを作成することになっているコードです。

Aircraft aircraftToAdd = new Aircraft(sbsMessageArray[4], //Mode-S hex code
            sbsMessageArray[10], //callsign
            Integer.parseInt(sbsMessageArray[11]), //altitude
            Integer.parseInt(sbsMessageArray[12]), //ground speed
            Integer.parseInt(sbsMessageArray[13]), //track
            Double.parseDouble(sbsMessageArray[14]), //latitude
            Double.parseDouble(sbsMessageArray[15])); //longitude

次に、次のように ArrayList に追加されます。

aircraftArrayList.add(aircraftToAdd);

しかし、次のことが起こります。

02-26 16:09:26.869 14873-14873/com.example.se415017.maynoothskyradar E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   Process: com.example.se415017.maynoothskyradar, PID: 14873
                                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.se415017.maynoothskyradar/com.example.se415017.maynoothskyradar.activities.MainActivity}: java.lang.NumberFormatException: Invalid int: ""
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
                                                                                       at android.app.ActivityThread.access$900(ActivityThread.java:154)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:135)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5294)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
                                                                                    Caused by: java.lang.NumberFormatException: Invalid int: ""
                                                                                       at java.lang.Integer.invalidInt(Integer.java:138)
                                                                                       at java.lang.Integer.parseInt(Integer.java:358)
                                                                                       at java.lang.Integer.parseInt(Integer.java:334)
                                                                                       at com.example.se415017.maynoothskyradar.activities.MainActivity.addAircraftToList(MainActivity.java:525)
                                                                                       at com.example.se415017.maynoothskyradar.activities.MainActivity.parseSBSMessage(MainActivity.java:516)
                                                                                       at com.example.se415017.maynoothskyradar.activities.MainActivity.readFromTextFile(MainActivity.java:419)
                                                                                       at com.example.se415017.maynoothskyradar.activities.MainActivity.onCreate(MainActivity.java:147)
                                                                                       at android.app.Activity.performCreate(Activity.java:5990)
                                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 
                                                                                       at android.app.ActivityThread.access$900(ActivityThread.java:154) 
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                       at android.os.Looper.loop(Looper.java:135) 
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5294) 
                                                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                                                       at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 

私はこれらのエラーにうんざりしています。sbsMessageArray[4] から文字列を作成してその場所に挿入することで、sbsMessageArray[4] を置き換えてみましたが、それは役に立ちませんでした。

4

2 に答える 2

1

Vasily Kabunov がコメントで述べたように、Integer.parseInt() に渡される文字列の 1 つ (またはすべて) は空です。

Integer.parseInt("") は、整数に解析するものが何もないため、例外をスローします。データ ソースを確認するか、yourstring.equals("") を使用して空の文字列テストを実行します。

于 2016-02-26T19:09:35.833 に答える
0

整数であると推定している値の少なくとも 1 つが整数ではありません。null または空の場合もあれば、10 進数の場合もあります。

于 2016-02-26T19:31:26.440 に答える