Please help me where is the problem here and how to fix it. So I wont get null
object. In my case, I'm sorry before I try to read other post too but make me little bit confused.
Here is my StoreHelper
:
public StoreData getStore(String storeid) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("select * from " + TABLE_NAME + " where "
+ COL_STORE_ID + "=?", new String[]{storeid});
StoreData data = null;
System.out.println("This is the problem ");
if (c.moveToFirst()) {
data = new StoreData(
c.getString(c.getColumnIndex(COL_STORE_ID)),
c.getString(c.getColumnIndex(COL_ACCOUNT_ID)),
c.getString(c.getColumnIndex(COL_KOTA_ID)),
c.getString(c.getColumnIndex(COL_STORE_NAME)),
c.getString(c.getColumnIndex(COL_STORE_MANAGER)),
c.getString(c.getColumnIndex(COL_STORE_ADDRESS)),
c.getString(c.getColumnIndex(COL_STORE_TELEPHONE)),
c.getString(c.getColumnIndex(COL_STORE_GEO_LAT)),
c.getString(c.getColumnIndex(COL_STORE_GEO_LONG)),
c.getString(c.getColumnIndex(COL_STORE_LEADTIME)),
c.getString(c.getColumnIndex(COL_STORE_MD)));
db.close();
c.close();
}
return data;
}
This is the StoreData
:
public class StoreData {
public int img;
public String store_id;
public String account_id;
public String kota_id;
public String store_name;
public String store_manager;
public String store_address;
public String store_telephone;
public String store_geo_lat;
public String store_geo_long;
public String store_leadtime;
public String store_md;
public StoreData(String storeid, String accountid, String kotaid, String storename, String storemanager,
String storeaddress, String storetelephone, String storegeolat, String storegeolong,
String storeleadtime, String storemd) {
super();
this.store_id = storeid;
this.account_id = accountid;
this.kota_id = kotaid;
this.store_name = storename;
this.store_manager = storemanager;
this.store_address = storeaddress;
this.store_telephone = storetelephone;
this.store_geo_lat = storegeolat;
this.store_geo_long = storegeolong;
this.store_leadtime = storeleadtime;
this.store_md = storemd;
}
}
And this is where the error point is in the Activity
public void inCaseOffline() {
StoreHelper sh = new StoreHelper(ctx);
Log.i("ncdebug", "Store ID(incaseoffline): " + storeid);
StoreData sd = sh.getStore(storeid);
// temporary
StoreInfo.storeid = sd.store_id;
StoreInfo.storename = sd.store_name;
StoreInfo.storeaddress = sd.store_address;
StoreInfo.storetelephone = sd.store_telephone;
StoreInfo.storemanager = sd.store_manager;
Log.i("Data", sd.store_id + "<->" + sd.store_geo_lat + "," + sd.store_geo_long);
TextView tvname = (TextView) findViewById(R.id.tvStoreInfoName);
tvname.setText(sd.store_name);
ProductsHelper helper = new ProductsHelper(ctx);
StoreInfo.storeproducts = helper.getProducts();
StoreInfo.storepromotions = new PromotionListData[0];
DisplayCatHelper helperDisplayCat = new DisplayCatHelper(ctx);
StoreInfo.storeDisplayCat = helperDisplayCat.getCategories();
PromoCatHelper helperPromoCat = new PromoCatHelper(ctx);
StoreInfo.storePromoCat = helperPromoCat.getCategories();
CompetitorCatHelper helperCompetitorCat = new CompetitorCatHelper(ctx);
StoreInfo.storeCompetitorCat = helperCompetitorCat.getCategories();
add_overlay(StoreInfo.storename, new
LatLng(Double.parseDouble(sd.store_geo_lat),
Double.parseDouble(sd.store_geo_long)));
}
This is my log :
Process: com.apps.userinarts.mobilemerchpre, PID: 5308 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apps.userinarts.mobilemerchpre/com.apps.userinarts.MobileMerchPre.StoresCheckinActivity}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.apps.userinarts.MobileMerchPre.data.StoreData.store_id' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.apps.userinarts.MobileMerchPre.data.StoreData.store_id' on a null object reference
at com.apps.userinarts.MobileMerchPre.StoresCheckinActivity.inCaseOffline(StoresCheckinActivity.java:93)
at com.apps.userinarts.MobileMerchPre.StoresCheckinActivity.onCreate(StoresCheckinActivity.java:83)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)