12-01 15:54:01.509:E / JSON Parser(19280):解析数据时出错
org.json.JSONException:Value
转换为JSONObject 12-01 15:54:01.514:W / dalvikvm(19280):
threadid = 13:线程以未捕获的异常退出(group = 0x417a22a0)
12-01 15:54:01.519:E / AndroidRuntime(19280):致命异常:
AsyncTask#2 12-01 15:54:01.519:E / AndroidRuntime(19280):
java.lang.RuntimeException:执行
时发生错误doInBackground()12-01 15:54:01.519:E / AndroidRuntime(19280):at
android.os.AsyncTask $ 3.done(AsyncTask.java:299)12-01 15:54:01.519: E / AndroidRuntime(19280):at
java.util.concurrent.FutureTask中$ Sync.innerSetException(FutureTask.java:273) 12-01 15:54:01.519:E / AndroidRuntime(19280):at
java.util.concurrent.FutureTask.setException(FutureTask.java:124) 12-01 15:54:01.519:E / AndroidRuntime(19280):at
java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:307) 12-01 15:54:01.519:E / AndroidRuntime(19280):at
java.util.concurrent.FutureTask.run(FutureTask.java:137)12-01
15:54:01.519:E / AndroidRuntime(19280):at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-01 15:54:01.519:E / AndroidRuntime(19280):at
java.util.concurrent.ThreadPoolExecutor中$ Worker.run(ThreadPoolExecutor.java:569)
12-01 15:54:01.519:E / AndroidRuntime(19280):at
java.lang.Thread.run(Thread.java:856)12-01 15:54:01.519:
E / AndroidRuntime(19280):引起:
java.lang.ArrayIndexOutOfBoundsException:length = 0; index = 0 12-01
15:54:01.519:E / AndroidRuntime(19280):at
com.example.bubblewave0.Room_Main_Activity $ IncreasePnum.doInBackground(Room_Main_Activity.java:264) 12-01 15:54:01.519:E / AndroidRuntime(19280):at
com.example.bubblewave0.Room_Main_Activity $ IncreasePnum.doInBackground(Room_Main_Activity.java:1) 12-01 15:54:01.519:E / AndroidRuntime(19280):at android.os.AsyncTask $ 2.call(AsyncTask.java:287)12-01 15:54:01.519: E / AndroidRuntime(19280):at java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:305) 12-01 15:54:01.519:E / AndroidRuntime(19280):... 4 more
我如何获得数组的值(string ... args)?
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
String temp = args[0];
params.add(new BasicNameValuePair(TAG_PNUM, temp)); // i get error over here
JSONObject json = jsonParser.makeHttpRequest(url_update_product,
"POST", params);
System.out.println(args[0]); //this works well.... shows me 2.
}
Integer itmp = 2;
doInBackground(itmp.toString());
答案 0 :(得分:0)
在Java中,您的函数doInBackground(String... args) {
几乎(但不完全)等同于doInBackground(String[] args) {
。一个实际的区别是前者也可以通过doInBackground();
调用。无论如何,这是它的工作原理 -
public static void test(String... args) {
System.out.println(Arrays.toString(args));
}
答案 1 :(得分:0)
如果您的代码在
处抛出异常params.add(new BasicNameValuePair(TAG_PNUM, temp));
我不认为它可以在
再次打印该值System.out.println(args[0]);
因为执行永远不会到达那里。
如果要执行您的代码System.out.println(args[0]);
,那么params.add(new BasicNameValuePair(TAG_PNUM, temp));
肯定会有效。
顺便说一句,你应该检查args并检查它的长度,然后再做任何事情。