Frage

12-01 15:54:01.509: E/JSON Parser(19280): Error parsing data

org.json.JSONException: Value

converted to JSONObject 12-01 15:54:01.514: W/dalvikvm(19280):

threadid=13: thread exiting with uncaught exception (group=0x417a22a0)

12-01 15:54:01.519: E/AndroidRuntime(19280): FATAL EXCEPTION:

AsyncTask #2 12-01 15:54:01.519: E/AndroidRuntime(19280):

java.lang.RuntimeException: An error occured while executing

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): Caused by:

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

How can i get value of array (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());
War es hilfreich?

Lösung

if your code throws an exception at

params.add(new BasicNameValuePair(TAG_PNUM, temp));

I dont think it can print the value again at

System.out.println(args[0]);

because execution would never reach there.

If for an execution of your code System.out.println(args[0]); works then params.add(new BasicNameValuePair(TAG_PNUM, temp)); would surely work.

By the way you should null check args and also check its length before doing anything with it.

Andere Tipps

In Java, your function doInBackground(String... args) { is almost (but not entirely) equivalent to doInBackground(String[] args) {. One practical difference is the former can also be called via doInBackground();. Regardless, this is how it works -

public static void test(String... args) {
  System.out.println(Arrays.toString(args));
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top