-4
public class MainActivity extends Activity{

Spinner spinner;
String values[];


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
            .detectAll()
            .penaltyLog()
            .penaltyDialog()
            .build());

    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll()
            .penaltyLog()
            .build());

    TextView wid = (TextView) findViewById(R.id.wid);
    TextView name = (TextView) findViewById(R.id.name);
    TextView url = (TextView) findViewById(R.id.url);

    JSONObject json = null;
    String str = "";
    HttpResponse response;
    HttpClient myClient = new DefaultHttpClient();
    HttpPost myConnection = new HttpPost("http://egcrm.cloudapp.net/operations/index.php/dcapi/gettrucktypes");
    //http://demos.tricksofit.com/files/json.php

    try {
        response = myClient.execute(myConnection);
        str = EntityUtils.toString(response.getEntity(), "UTF-8");

    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        JSONArray jArray = new JSONArray(str);
        for (int i=0; i < jArray.length();i++){
        json = jArray.getJSONObject(i);

        wid.setText(json.getString("Key"));
        name.setText(json.getString("Value"));
        // url.setText(json.getString("url"));
            String shiva=new String();
            shiva=json.getString("Value");
            values=new String[jArray.length()];
            values[i]=shiva;
    }

    }

    catch ( JSONException e) {
        e.printStackTrace();
    }
spinner=(Spinner)findViewById(R.id.spinner);
        ArrayAdapter<String> aa=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,values);
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(aa);
    }

}

logcat:

01-26 11:56:12.799 19322-19322/com.example.sai.lasttry E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.sai.lasttry, PID: 19322 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394) at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:197) at android.widget.Spinner.onMeasure(Spinner.java:507) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436) at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1083) at android.widget.LinearLayout.onMeasure(LinearLayout.java:615) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436) at android.widget.LinearLayout.measureVertical(LinearLayout.java:722) at android.widget.LinearLayout.onMeasure(LinearLayout.java:613) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560) at android.view.View.measure(View.java:17430) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) at android.view.Choreographer.doCallbacks(Choreographer.java:580) at android.view.Choreographer.doFrame(Choreographer.java:550) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) 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:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

VishnuVS
  • 1,055
  • 2
  • 14
  • 29
shiva allani
  • 41
  • 1
  • 2
  • 6

3 Answers3

0

Root cause : new String[] in loop

values=new String[jArray.length()]; 
Phuoc Huynh
  • 692
  • 4
  • 7
0

I think your error is in this line

str = EntityUtils.toString(response.getEntity(), "UTF-8");

It seems you are trying to get the data not to post, so do like this

HttpGet httpGet = new HttpGet("http://egcrm.cloudapp.net/operations/index.php/dcapi/gettrucktypes");
HttpResponse httpResponse = new DefaultHttpClient()
                    .execute(httpGet);

Then after get string like

String result = EntityUtils.toString(httpResponse.getEntity(),
                "utf-8");
Shree Krishna
  • 8,474
  • 6
  • 40
  • 68
0

Error is because of theses lines:

values=new String[jArray.length()];
values[i]=shiva;

and it is because values array is not filling up, and it gives NullPointerException. try to debug and check what is coming in jArray.length() and make sure it is filling up your values array.

Faraz
  • 2,144
  • 1
  • 18
  • 28