0

私はこの質問がここで何度も尋ねられることを知っています。実際、私もそれらのいくつかを参照していますが、解決策を得ることができないので、ここに投稿することにしました

その時点で文字列値を整数に解析しようとしているだけで、Nullポインタ例外が発生します。文字列の値を出力しようとすると正しい5が得られますが、解析後に値を出力すると0になります。試したコードに従ってください。

String xmldata = "";
int sql_proID;
xmldata = os.toString();
sql_proID = Integer.parseInt(xmldata);

また、sql_proIDを宣言してみましたが、同じエラーが発生します。以下は例外メッセージです

01-04 17:06:14.166: W/System.err(398): java.lang.NumberFormatException: unable to parse  '
01-04 17:06:14.166: W/System.err(398): 5' as integer
01-04 17:06:14.166: W/System.err(398):  atjava.lang.Integer.parse(Integer.java:383)
01-04 17:06:14.176: W/System.err(398):  at java.lang.Integer.parseInt(Integer.java:372)
01-04 17:06:14.176: W/System.err(398):  at java.lang.Integer.parseInt(Integer.java:332)
01-04 17:06:14.176: W/System.err(398):  at com.example.anti_dui_app.Synchronization.onCreate(Synchronization.java:57)
01-04 17:06:14.176: W/System.err(398):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-04 17:06:14.176: W/System.err(398):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-04 17:06:14.176: W/System.err(398):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-04 17:06:14.185: W/System.err(398):  at android.os.Looper.loop(Looper.java:123)
01-04 17:06:14.185: W/System.err(398):  at android.app.ActivityThread.main(ActivityThread.java:3683)
01-04 17:06:14.185: W/System.err(398):  at java.lang.reflect.Method.invokeNative(Native Method)
01-04 17:06:14.185: W/System.err(398):  at java.lang.reflect.Method.invoke(Method.java:507)
01-04 17:06:14.185: W/System.err(398):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-04 17:06:14.185: W/System.err(398):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-04 17:06:14.185: W/System.err(398):  at dalvik.system.NativeStart.main(Native Method)

私が間違っているところ教えてください...ありがとう

4

4 に答える 4

6

そこに改行文字があるようです。

文字列をトリミングして空白を削除してみましたか?

例えば:

sql_proID = Integer.parseInt(xmldata.trim());

于 2013-01-04T11:53:08.873 に答える
5

NullPointerExceptionの理由である、一重引用符で5つ取得しているようです。

logcatに表示されている新しい行が存在することも確認してください。

于 2013-01-04T11:53:32.757 に答える
4

ではありNumberFormatExceptionませんNullPointerException"\n5"これは、単なる。ではなく、形式が正しくない数値文字列が原因で発生します"5"

于 2013-01-04T11:53:32.163 に答える
0

あなたのコードは明確ではなく、次のようにマークされています。

String **xmldata**="";
int sql_proID;
xmldata = os.toString();
sql_proID=Integer.parseInt(xmldata);

ここでは、値が「5」のxmldataを解析しています。パーサーには理解できません。したがって、値を5として取得するようにしてください。

于 2013-01-04T11:57:30.377 に答える