This was working fine in Recyclerview.. however problem started when i started converting to gridview(included image)....
ERROR - java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference......OfferParser.java:83
**(OfferParser.java:83)**------- gv.setAdapter(offerAdapter);
**OfferParser.java:34**-----public class OfferParser extends AsyncTask<Void, Void, Integer> {
FATAL EXCEPTION: main
Process: khanduri2.shobhit.myapplication, PID: 23717
  java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference
  at khanduri2.shobhit.myapplication.mLiquorSQL.OfferParser.onPostExecute(OfferParser.java:83)
  at khanduri2.shobhit.myapplication.mLiquorSQL.OfferParser.onPostExecute(OfferParser.java:34)
  at android.os.AsyncTask.finish(AsyncTask.java:636)
  at android.os.AsyncTask.access$500(AsyncTask.java:177)
  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:135)
  at android.app.ActivityThread.main(ActivityThread.java:5351)
  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:947)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)
OfferParser() class
package khanduri2.shobhit.myapplication.mLiquorSQL;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.support.v7.widget.RecyclerView;
import android.widget.GridView;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import khanduri2.shobhit.myapplication.MainActivity;
import khanduri2.shobhit.myapplication.mGridView.OfferAdapterGv;
import khanduri2.shobhit.myapplication.mLiquorDataObjext.GetOfferData;
import khanduri2.shobhit.myapplication.mLiquorDataObjext.GetShopsData;
import khanduri2.shobhit.myapplication.mLiquorRecyclerActivity.MyAdapter;
/**
 * Created by jack on 18/01/2018.
 */
public class OfferParser extends AsyncTask<Void, Void, Integer> {
    String jsonData;
    GridView gv;
    Context context;
    ArrayList<GetOfferData> getOfferDatas= new ArrayList<>();
    ProgressDialog pd;
    double distanceNumeric=0.0;
    public OfferParser(Context c,String jsonData,GridView gv) {
        this.jsonData = jsonData;
        this.gv = gv;
        this.context = c;
    }
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        distanceNumeric=0.0;
        pd = new ProgressDialog(context);
        pd.setTitle("Parse");
        pd.setMessage("Parsing Offer's..... Please Wait!!!!");
        pd.show();
    }
    @Override
    protected Integer doInBackground(Void... params) {
        return this.parse();
    }
    @Override
    protected void onPostExecute(Integer result) {
        super.onPostExecute(result);
        pd.dismiss();
        if(result==0){
            Toast.makeText(context,"Unable to parse 
Offer's",Toast.LENGTH_SHORT);
        }else{
            //CALL ADAPTER TO BIND DATA TO GRIDVIEW
            OfferAdapterGv offerAdapter = new 
OfferAdapterGv(context,getOfferDatas);
            gv.setAdapter(offerAdapter);
        }
    }
    private int parse()
    {
        try {
            JSONArray ja = new JSONArray(jsonData);
            JSONObject jo = null;
            getOfferDatas.clear();
            GetOfferData getOfferData = null;
            for(int i=0;i<ja.length();i++){
                jo= ja.getJSONObject(i);
                int id = jo.getInt("Id");
                String shopName = jo.getString("Name");
                String city = jo.getString("City");
                String imageurl = jo.getString("ImageUrl");
                String offer1 = jo.getString("Offer1");
                String offer2 = jo.getString("Offer2");
                String offer3 = jo.getString("Offer3");
                String offer4 = jo.getString("Offer4");
                String offer5 = jo.getString("Offer5");
                String offertc = jo.getString("OfferTC");
                double ownerLatitude = jo.getDouble("OwnerLatitude");
                double ownerLongitude = jo.getDouble("OwnerLongitude");
                String distance = jo.getString("Distance");
                distanceNumeric = jo.getDouble("DistanceNumeric");
                distance = getDistance(MainActivity.userMasterLat,MainActivity.userMasterLng,ownerLatitude,ownerLongitude);
                getOfferData = new GetOfferData();
                getOfferData.setId(id);
                getOfferData.setShop_name(shopName);
                getOfferData.setCity(city);
                getOfferData.setImageurl(imageurl);
                getOfferData.setOffer1(offer1);
                getOfferData.setOffer2(offer2);
                getOfferData.setOffer3(offer3);
                getOfferData.setOffer4(offer4);
                getOfferData.setOffer5(offer5);
                getOfferData.setOffer_tc(offertc);
                getOfferData.setOwner_latitude(ownerLatitude);
                getOfferData.setOwner_longitude(ownerLongitude);
                getOfferData.setDistance(distance);
                getOfferData.setDistance_numeric(distanceNumeric);
                getOfferDatas.add(getOfferData);
            }
            // SORTING BY THE DISTANCE
            sortData();
            return 1;
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return 0;
    }
    private void sortData() {
        Collections.sort(getOfferDatas,(l1, l2) -> {
            if((int)(l1.getDistance_numeric()) > (int)l2.getDistance_numeric())
            {
                return 1;
            } else if(l1.getDistance_numeric() < l2.getDistance_numeric())
            {
                return -1;
            }else
            {
                return 0;
            }
        });
    }
    public String getDistance(final double lat1, final double lon1, final double lat2, final double lon2){
        final String[] parsedDistance = new String[1];
        final String[] response = new String[1];
        final Double[] parsedDistanceint = new Double[1];
        distanceNumeric=0.0;
        Thread thread=new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    URL url = new URL("http://maps.googleapis.com/maps/api/directions/json?origin=" + lat1 + "," + lon1 + "&destination=" + lat2 + "," + lon2 + "&sensor=false&units=metric&mode=driving");
                    final HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("POST");
                    InputStream in = new BufferedInputStream(conn.getInputStream());
                    response[0] = org.apache.commons.io.IOUtils.toString(in, "UTF-8");
                    JSONObject jsonObject = new JSONObject(response[0]);
                    JSONArray array = jsonObject.getJSONArray("routes");
                    JSONObject routes = array.getJSONObject(0);
                    JSONArray legs = routes.getJSONArray("legs");
                    JSONObject steps = legs.getJSONObject(0);
                    JSONObject distance = steps.getJSONObject("distance");
                    parsedDistance[0] =distance.getString("text");
                    parsedDistanceint[0] = distance.getDouble("value");
                } catch (ProtocolException e) {
                    e.printStackTrace();
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });
        thread.start();
        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        distanceNumeric = parsedDistanceint[0];
        return parsedDistance[0];
    }
}
OfferAdaptergv
package khanduri2.shobhit.myapplication.mGridView;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
 import khanduri2.shobhit.myapplication.R;
 import khanduri2.shobhit.myapplication.mLiquorDataObjext.GetOfferData;
import 
khanduri2.shobhit.myapplication.m_FullDetailActivity.OfferDetailActivity;
public class OfferAdapterGv extends BaseAdapter {
Context c;
ArrayList<GetOfferData> getOfferDatas;
LayoutInflater inflater;
public OfferAdapterGv(Context con, ArrayList<GetOfferData> gODS) {
    this.c = con;
    this.getOfferDatas = gODS;
    inflater = (LayoutInflater) this.c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
    return getOfferDatas.size();
}
@Override
public Object getItem(int position) {
    return getOfferDatas.get(position);
}
@Override
public long getItemId(int position) {
    return position;
}
@Override
public View getView(int position, View cvOffer, ViewGroup parent) {
    if(cvOffer==null)
    {
        cvOffer = inflater.inflate(R.layout.offergridmodel,parent,false);
    }
    ImageView img = (ImageView) cvOffer.findViewById(R.id.shopPicOfferImageView);
    TextView nameTv = (TextView) cvOffer.findViewById(R.id.shopNameOfferTextView);
    TextView offer1Tv = (TextView) cvOffer.findViewById(R.id.offer1TextView);
    TextView offer2Tv = (TextView) cvOffer.findViewById(R.id.offer2TextView);
    TextView offer3Tv = (TextView) cvOffer.findViewById(R.id.offer3TextView);
    TextView offer4Tv = (TextView) cvOffer.findViewById(R.id.offer4TextView);
    TextView offer5Tv = (TextView) cvOffer.findViewById(R.id.offer5TextView);
    TextView offerTcTv = (TextView) cvOffer.findViewById(R.id.offerTcTextView);
    TextView shopDistanceTv = (TextView) cvOffer.findViewById(R.id.shopDistanceOfferTextView);
    // BIND DATA
    GetOfferData getOfferData = getOfferDatas.get(position);
    PicassoClient.downloadImage(c,getOfferData.getImageurl(),img);
    nameTv.setText(getOfferData.getShop_name());
    offer1Tv.setText(getOfferData.getOffer1());
    offer2Tv.setText(getOfferData.getOffer2());
    offer3Tv.setText(getOfferData.getOffer3());
    offer4Tv.setText(getOfferData.getOffer4());
    offer5Tv.setText(getOfferData.getOffer5());
    offerTcTv.setText(getOfferData.getOffer_tc());
    shopDistanceTv.setText(getOfferData.getDistance());
    cvOffer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openDetailActivity(getOfferData.getId());
        }
    });
    return cvOffer;
}
private void openDetailActivity(int id){
    Intent i = new Intent (c,OfferDetailActivity.class);
    i.putExtra("ID_KEY",id);
    c.startActivity(i);
}
}
Offergridmodel(xml) for gridview
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mCardGv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@android:drawable/spinner_background"
android:orientation="horizontal"
card_view:cardBackgroundColor="@color/colorPrimaryDark"
card_view:cardCornerRadius="5dp"
card_view:cardElevation="5dp"
>
<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:drawable/dialog_holo_light_frame">
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/shopPicOfferImageView"
        android:layout_width="180dp"
        android:layout_height="100dp"
        android:padding="2dp"
        android:layout_gravity ="center_horizontal"
        android:contentDescription="@null" />
    <TextView
        android:id="@+id/shopDistanceOfferTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="2dp"
        android:paddingRight="5dp"
        android:paddingLeft="5dp"
        android:background="@color/colorPrimaryDark"
        android:layout_gravity="end"
        android:text="@string/shopDistanceTextView"
        android:textAlignment="viewEnd"
        android:textColor="@color/colorPrimary"
        android:textSize="16sp"
        android:textStyle="bold" />
    </FrameLayout>
    <TextView
        android:id="@+id/shopNameOfferTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/shopNameTextView"
        android:textAlignment="center"
        android:textAllCaps="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorAccent"
        android:textSize="14sp"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/offer1TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimaryDark"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/offer1TextView"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorAccent"
        android:textSize="14sp" />
    <TextView
        android:id="@+id/offer2TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/offer2TextView"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorAccent"
        android:textSize="14sp" />
    <TextView
        android:id="@+id/offer3TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimaryDark"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/offer3TextView"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorAccent"
        android:textSize="14sp" />
    <TextView
        android:id="@+id/offer4TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/offer4TextView"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorAccent"
        android:textSize="14sp" />
    <TextView
        android:id="@+id/offer5TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimaryDark"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/offer5TextView"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorAccent"
        android:textSize="14sp" />
    <TextView
        android:id="@+id/offerTcTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/wallet_dim_foreground_holo_dark"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/offerTcTextView"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorAccent"
        android:textSize="14sp"
        android:textStyle="italic" />
</LinearLayout>
</android.support.v7.widget.CardView>
OfferRestBarTabFragment(where i decleared gridview)(also if this helps i can see the gridview data which i wanted to display(image and text) on my phone before the app crashes)
package khanduri2.shobhit.myapplication.mLiquorTab;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import khanduri2.shobhit.myapplication.R;
import khanduri2.shobhit.myapplication.mGridView.OfferAdapterGv;
import khanduri2.shobhit.myapplication.mLiquorSQL.OfferSenderReceiver;
import khanduri2.shobhit.myapplication.mLiquorSQL.SenderReceiver;
import static khanduri2.shobhit.myapplication.MainActivity.userMasterLat;
import static khanduri2.shobhit.myapplication.MainActivity.userMasterLng;
public class OfferRestBarTabFragment extends Fragment {
final static String urlSearchCityRbOffer = "http://192.168.0.105/Daru/offerrestpubdata_city.php";
final static String urlSearchRbOffer = "http://192.168.0.105/Daru/offerrestpubdata_city.php";
ImageView noDataImgRbOffer,noNetworkImgRbOffer;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle 
savedInstanceState) {
    View vRbOffer = 
inflater.inflate(R.layout.fragment_offer_rest_bar_tab,null);
    Geocoder geocoder = new Geocoder(this.getActivity(), 
Locale.getDefault());
    List<Address> addresses = null;
    try {
        addresses = geocoder.getFromLocation(userMasterLat , userMasterLng, 
1);
    } catch (IOException e) {
        e.printStackTrace();
    }
    String cityQueryRbOffer = addresses.get(0).getLocality();
    //GridView
    GridView gvRbOffer = 
(GridView)vRbOffer.findViewById(R.id.mGvRestBarOffer);
    SearchView svRbOffer = (SearchView) 
vRbOffer.findViewById(R.id.mSvRestBarOffer);
    noDataImgRbOffer = (ImageView) vRbOffer.findViewById(R.id.noDataOfferImg);
    noNetworkImgRbOffer = (ImageView) vRbOffer.findViewById(R.id.noServerOfferImg);
    OfferSenderReceiver srRbOffer = new 
OfferSenderReceiver(OfferRestBarTabFragment.this.getActivity(), 
cityQueryRbOffer,urlSearchCityRbOffer,
gvRbOffer,noDataImgRbOffer,noNetworkImgRbOffer);
    srRbOffer.execute();
    svRbOffer.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            OfferSenderReceiver srRbOffer = new 
OfferSenderReceiver(OfferRestBarTabFragment.this.getActivity(), 
query, urlSearchCityRbOffer, gvRbOffer, noDataImgRbOffer, 
noNetworkImgRbOffer);
            srRbOffer.execute();
            return false;
        }
        @Override
        public boolean onQueryTextChange(String query) {
            OfferSenderReceiver srRbOffer = new OfferSenderReceiver(OfferRestBarTabFragment.this.getActivity(), query, urlSearchCityRbOffer, gvRbOffer, noDataImgRbOffer, noNetworkImgRbOffer);
            srRbOffer.execute();
            return false;
        }
    });
    return vRbOffer;
}
 //SET TITLE FOR THE FRAGMENT
  @Override
  public String toString() {
    return "Rest/ Bar Offer";
  }
}
fragment_offer_rest_bar_tab.xml (xml of the OfferRestBarTabFragment)
 <?xml version="1.0" encoding="utf-8"?>
 <android.support.design.widget.CoordinatorLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="@drawable/appbglessblur"
 android:paddingLeft="5dp"
 android:paddingBottom="5dp"
 android:paddingRight="5dp"
 android:paddingTop="5dp"
 app:layout_behavior="@string/appbar_scrolling_view_behavior"
  tools:context=
  "khanduri2.shobhit.myapplication.mLiquorTab.OfferRestBarTabFragment">
   <android.support.v7.widget.SearchView
    android:id="@+id/mSvRestBarOffer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/actionModeBackground"
    app:defaultQueryHint="Search.."></android.support.v7.widget.SearchView>
    <GridView
    android:id="@+id/mGvRestBarOffer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:background=
   "@android:drawable/screen_background_light_transparent"
    android:numColumns="2"></GridView>
   <ImageView
    android:id="@+id/noDataOfferImg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:contentDescription="@null"
    android:src="@drawable/norecordfound"
    android:layout_gravity="center"
    android:visibility="invisible" />
   <ImageView
    android:id="@+id/noServerOfferImg"
    android:visibility="invisible"
    android:src="@drawable/noserver"
    android:layout_marginTop="50dp"
    android:contentDescription="@null"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
  </android.support.design.widget.CoordinatorLayout>
 
    