0

When I use my code in one class file, it runs perfectly but when detach Async method from main activity:

GetCategories class:

package ir.reza.smss;


import ir.reza.smss.Fragments.TabFragment1;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;

public class GetCategories extends AsyncTask<Void, Void, Void> {

private Context context;
private ArrayList<Category> categoriesList;
ProgressDialog pDialog;
// Url to get all categories
private String URL_CATEGORIES = "http://varzesh-ilam.xzn.ir/app/get_categories.php";

public GetCategories(Context context) {
    this.context = context;
}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    pDialog = new ProgressDialog(context);
    pDialog.setMessage("Loading...");
    pDialog.setCancelable(false);
    pDialog.show();

}

@Override
protected Void doInBackground(Void... arg0) {
    ServiceHandler jsonParser = new ServiceHandler();
    String json = jsonParser.makeServiceCall(URL_CATEGORIES, ServiceHandler.GET);

    Log.e("Response: ", "> " + json);

    if (json != null) {
        try {
            JSONObject jsonObj = new JSONObject(json);
            if (jsonObj != null) {
                JSONArray categories = jsonObj
                        .getJSONArray("categories");                        

                for (int i = 0; i < categories.length(); i++) {
                    JSONObject catObj = (JSONObject) categories.get(i);
                    Category cat = new Category(catObj.getInt("id"),
                            catObj.getString("name"));
                    categoriesList.add(cat);
                }
            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

    } else {
        Log.e("JSON Data", "Didn't receive any data from server!");
    }

    return null;
}

@Override
protected void onPostExecute(Void result) {
    super.onPostExecute(result);
    if (pDialog.isShowing())
        pDialog.dismiss();
    TabFragment1 tb1 = new TabFragment1();
    tb1.populateSpinner();
}



}

and logcat :

01-22 11:17:38.475: I/global(9785): call createSocket() return a new socket.
01-22 11:18:22.465: W/dalvikvm(10293): threadid=12: thread exiting with uncaught     exception (group=0x417e9a08)
01-22 11:18:22.470: E/AndroidRuntime(10293): FATAL EXCEPTION: AsyncTask #1
01-22 11:18:22.470: E/AndroidRuntime(10293): java.lang.RuntimeException: An error     occured while executing doInBackground()
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     android.os.AsyncTask$3.done(AsyncTask.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     java.util.concurrent.FutureTask.finishCompletion(FutureTask.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     java.util.concurrent.FutureTask.setException(FutureTask.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     java.util.concurrent.FutureTask.run(FutureTask.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at java.lang.Thread.run(Thread.java)
01-22 11:18:22.470: E/AndroidRuntime(10293): Caused by: java.lang.NullPointerException
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     ir.reza.smss.GetCategories.doInBackground(GetCategories.java:64)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     ir.reza.smss.GetCategories.doInBackground(GetCategories.java:1)
01-22 11:18:22.470: E/AndroidRuntime(10293):    at     android.os.AsyncTask$2.call(AsyncTask.java)
01-22 11:18:22.470: E/AndroidRuntime(10293):    ... 5 more

I want to run the asyntask i have from a different class file I'm using eclipse and I'm new to java and android dev.

Ravi
  • 34,851
  • 21
  • 122
  • 183
rez
  • 1
  • 7
  • possible duplicate of [What is a Null Pointer Exception, and how do I fix it?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – Artjom B. Mar 17 '15 at 16:18

1 Answers1

0

java.lang.NullPointerException at ir.reza.smss.GetCategories.doInBackground(GetCategories.java:64)

Check the values with the debuger and see where you are passing a null object. (at line 64)

Mario Stoilov
  • 3,411
  • 5
  • 31
  • 51