Note that there are some explanatory texts on larger screens.

plurals
  1. POFATAL EXCEPTION: AsyncTask #1 do in background error with JSON
    primarykey
    data
    text
    <p>I'm trying to <strong>parse image to viewpager with asynctask into my app using JSON</strong>.I've encounter this problem for 2days after I fixed my JSON problem,now I encounter another problem with Async task. <strong>I've look through all the answers in stackoverflow</strong>,unfortunately none of them solve my problem.So here's my code and error log,any help would be greatly appreciated.</p> <p>json link-<a href="http://vina.harvestcamasu.com/vina/xml/image.json" rel="nofollow">http://vina.harvestcamasu.com/vina/xml/image.json</a></p> <pre><code>package vinajson.img; public class MainActivity extends Activity{ // url to make request private static String url ="http://vina.harvestcamasu.com/vina/xml/image.json"; // JSON Node names static String TAG_GALLERY = "Gallery"; static String TAG_ARTIST = "Artist"; static String TAG_IMAGE = "Image"; static String TAG_ID = "ID"; ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = this; //hashmap for view final ArrayList&lt;HashMap&lt;String, String&gt;&gt; imagelist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(); AsyncTask&lt;Void, Void, JSONObject&gt; task = new AsyncTask&lt;Void, Void, JSONObject&gt;() { @Override protected void onPreExecute() { mProgressDialog = new ProgressDialog(context); mProgressDialog.setTitle("Processing..."); mProgressDialog.setMessage("Please wait."); mProgressDialog.setCancelable(false); mProgressDialog.setIndeterminate(true); mProgressDialog.show(); } @Override protected JSONObject doInBackground(Void... arg0) { try { // Do something... Thread.sleep(5000); JSONParser jParser = new JSONParser(); json = jParser.getJSONFromUrl(url); JSONObject json = jParser.getJSONFromUrl(url); // get Gallery JSONObject JSONObject json_gallery=json.getJSONObject("Gallery"); // get Artist JSONObject JSONObject json_artist=json_gallery.getJSONObject("Artist"); // get Image JSONArray //getting array from image JSONArray Image = null; try { Image = json_artist.getJSONArray(TAG_IMAGE); for (int i = 0; i &lt; Image.length(); i++) { JSONObject m = Image.getJSONObject(i); //adding hashlist into arraylist imagelist.add(map); images[i] = m.getString("PicURL"); System.out.println(m.getString("ID")); System.out.println(m.getString("Name")); System.out.println(m.getString("PicURL")); System.out.println(m.getString("Date")); System.out.println(m.getString("Caption")); } InputStream is1 = (InputStream) new URL(images[0]).getContent(); d1 = Drawable.createFromStream(is1, "src name"); ... } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return json; } @Override protected void onPostExecute(JSONObject result) { if (mProgressDialog != null) { mProgressDialog.dismiss(); } //caption = result.getString(TAG_CAPTION); MyPagerAdapter adapter = new MyPagerAdapter(d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13); ViewPager myPager = (ViewPager) findViewById(R.id.viewpager); myPager.setAdapter(adapter); myPager.setCurrentItem(0); } }; task.execute((Void[]) null); } } </code></pre> <p>And now for the error log.</p> <pre><code> 12-06 12:01:53.589: W/dalvikvm(29144): threadid=1: thread exiting with uncaught exception (group=0x40c4f1f8) 12-06 12:01:53.597: E/AndroidRuntime(29144): FATAL EXCEPTION: main 12-06 12:01:53.597: E/AndroidRuntime(29144): java.lang.NullPointerException 12-06 12:01:53.597: E/AndroidRuntime(29144): at vinajson.img.MyPagerAdapter.getCount(MyPagerAdapter.java:47) 12-06 12:01:53.597: E/AndroidRuntime(29144): at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:434) 12-06 12:01:53.597: E/AndroidRuntime(29144): at vinajson.img.MainActivity$1.onPostExecute(MainActivity.java:200) 12-06 12:01:53.597: E/AndroidRuntime(29144): at vinajson.img.MainActivity$1.onPostExecute(MainActivity.java:1) 12-06 12:01:53.597: E/AndroidRuntime(29144): at android.os.AsyncTask.finish(AsyncTask.java:602) 12-06 12:01:53.597: E/AndroidRuntime(29144): at android.os.AsyncTask.access$600(AsyncTask.java:156) 12-06 12:01:53.597: E/AndroidRuntime(29144): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615) 12-06 12:01:53.597: E/AndroidRuntime(29144): at android.os.Handler.dispatchMessage(Handler.java:99) 12-06 12:01:53.597: E/AndroidRuntime(29144): at android.os.Looper.loop(Looper.java:137) 12-06 12:01:53.597: E/AndroidRuntime(29144): at android.app.ActivityThread.main(ActivityThread.java:4512) 12-06 12:01:53.597: E/AndroidRuntime(29144): at java.lang.reflect.Method.invokeNative(Native Method) 12-06 12:01:53.597: E/AndroidRuntime(29144): at java.lang.reflect.Method.invoke(Method.java:511) 12-06 12:01:53.597: E/AndroidRuntime(29144): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:982) 12-06 12:01:53.597: E/AndroidRuntime(29144): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 12-06 12:01:53.597: E/AndroidRuntime(29144): at dalvik.system.NativeStart.main(Native Method) </code></pre> <p><strong>Here's MyPagerAdapter.java</strong> </p> <pre><code>package vinajson.img; import org.json.JSONArray; import android.content.Context; .... public class MyPagerAdapter extends PagerAdapter { //private String caption; private Drawable d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13; private JSONArray Image; public MyPagerAdapter( Drawable draw1, Drawable draw2,Drawable draw3,Drawable draw4,Drawable draw5, Drawable draw6,Drawable draw7,Drawable draw8,Drawable draw9,Drawable draw10,Drawable draw11, Drawable draw12,Drawable draw13){ //caption = text; d1 = draw1; d2 = draw2; .... } public int getCount() { return Image.length(); } public Object instantiateItem(View collection, int position) { LayoutInflater inflater = (LayoutInflater) collection.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); int resId = R.layout.first_page; View view = inflater.inflate(resId, null); ImageView image1 = (ImageView)view.findViewById(R.id.imageView1); switch (position) { case 0: image1.setImageDrawable(d1); break; case 1: image1.setImageDrawable(d2); break; case 2: image1.setImageDrawable(d3); break; .... } ((ViewPager) collection).addView(view, 0); return view; } public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView((View) arg2); } public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == ((View) arg1); } public Parcelable saveState() { return null; } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload