java - Null Pointer Exception with "getPackageName()" -


i have been stuck on problem past week , half. made game using "kilobolt" framework, , have been trying implement in app purchase's in app , i've tried every way possible keep getting same error, there null pointer exception.

06-13 21:40:18.991: e/androidruntime(16384): java.lang.nullpointerexception 06-13 21:40:18.991: e/androidruntime(16384): @ android.content.contextwrapper.getpackagename(contextwrapper.java:127)

i have 1 activity have method leveltwobuttonclicked() , calling method java class, null pointer exception coming , because of getpackagename().

i have in try catch statement:

skudetails = mservice.getskudetails(3, getpackagename(), "inapp", queryskus);.

i have done research , read there issue context , calling getpackagename() havent been able figure out issue yet 1 can me resolve this!

public abstract class androidgame extends activity implements game {

public static context mcontext;  iinappbillingservice mservice; serviceconnection mserviceconn;  static final string item_sku = "android.test.purchased";  @suppresswarnings("deprecation") @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);      requestwindowfeature(window.feature_no_title);    getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen);     boolean isportrait = getresources().getconfiguration().orientation == configuration.orientation_portrait;     int framebufferwidth = isportrait ? 480: 800;     int framebufferheight = isportrait ? 800: 480;     bitmap framebuffer = bitmap.createbitmap(framebufferwidth,             framebufferheight, config.rgb_565);      float scalex = (float) framebufferwidth             / getwindowmanager().getdefaultdisplay().getwidth();     float scaley = (float) framebufferheight             / getwindowmanager().getdefaultdisplay().getheight();      renderview = new androidfastrenderview(this, framebuffer);     graphics = new androidgraphics(getassets(), framebuffer);        fileio = new androidfileio(this);     audio = new androidaudio(this);     input = new androidinput(this, renderview, scalex, scaley);     screen = getinitscreen();      linearlayout layout = new linearlayout(this);     layout.setorientation(linearlayout.vertical);      layout.addview(renderview);      setcontentview(layout);      powermanager powermanager = (powermanager) getsystemservice(context.power_service);     wakelock = powermanager.newwakelock(powermanager.full_wake_lock, "mygame");      mcontext = getbasecontext();      mserviceconn = new serviceconnection() {        @override        public void onservicedisconnected(componentname name) {            mservice = null;        }         @override        public void onserviceconnected(componentname name,           ibinder service) {            mservice = iinappbillingservice.stub.asinterface(service);        }     };      intent serviceintent = new intent("com.android.vending.billing.inappbillingservice.bind");     serviceintent.setpackage("com.android.vending");     bindservice(serviceintent, mserviceconn, context.bind_auto_create);   }  public void leveltwobuttonclicked(){      assets.click.play(1.00f);     arraylist<string> skulist = new arraylist<string> ();     skulist.add("android.test.purchased");          bundle queryskus = new bundle();     queryskus.putstringarraylist("item_id_list", skulist);     bundle skudetails;                  try {                      skudetails = mservice.getskudetails(3, getpackagename(), "inapp", queryskus);                      int response = skudetails.getint("response_code");                      if (response == 0) {                          arraylist<string> responselist = skudetails.getstringarraylist("details_list");                          (string thisresponse : responselist) {                             jsonobject object = new jsonobject(thisresponse);                             string sku = object.getstring("productid");                             string price = object.getstring("price");                              if (sku.equals("android.test.purchased")) {                                  bundle buyintentbundle = mservice.getbuyintent(3, getpackagename(), sku, "inapp", "bgoa+v7g/yqdxvkrqq+jtfn4uqzbpiqjo4pf9rzj");                                 pendingintent pendingintent = buyintentbundle.getparcelable("buy_intent");                                 startintentsenderforresult(pendingintent.getintentsender(), 1001, new intent(), integer.valueof(0), integer.valueof(0), integer.valueof(0));                              }                         }                     }                  } catch (remoteexception e) {                     e.printstacktrace();                 } catch (jsonexception e) {                     e.printstacktrace();                 } catch (sendintentexception e) {                     e.printstacktrace();                 }  }  @override protected void onactivityresult(int requestcode, int resultcode, intent data) {    if (requestcode == 1001) {       int responsecode = data.getintextra("response_code", 0);       string purchasedata = data.getstringextra("inapp_purchase_data");       string datasignature = data.getstringextra("inapp_data_signature");        if (resultcode == result_ok) {          try {             jsonobject jo = new jsonobject(purchasedata);             string sku = jo.getstring("android.test.purchased");             toast.maketext(mcontext,"you have bought " + sku + ". excellent choice,adventurer!", toast.length_long).show();           }           catch (jsonexception e) {              toast.maketext(mcontext,"failed parse purchase data.", toast.length_long).show();              e.printstacktrace();           }       }    } }    public static context getcontext(){     return mcontext; }   @override public void onresume() {     super.onresume();     wakelock.acquire();     screen.resume();     renderview.resume();     madview.resume();      if(assets.mainmenuloop.isstopped()){         assets.mainmenuloop.play();     }  }  @override public void onpause() {     super.onpause();     wakelock.release();     renderview.pause();     screen.pause();     madview.pause();      if(assets.mainmenuloop.isplaying()){         assets.mainmenuloop.stop();     }      sharedpreferences highscoredata = getsharedpreferences("high", 0);     sharedpreferences.editor editor = highscoredata.edit();     editor.putint("score", highscore);     editor.putint("secondscore", secondhighscore);     editor.putint("thirdscore", thirdhighscore);     editor.putint("fourthscore", fourthhighscore);     editor.commit();       if (isfinishing())         screen.dispose(); }  @override public input getinput() {     return input; }  @override public fileio getfileio() {     return fileio; }  @override public graphics getgraphics() {     return graphics; }  @override public audio getaudio() {     return audio; }  @override public void ondestroy() {     super.ondestroy();     madview.destroy();     /*     if (mservice != null) {         unbindservice(mserviceconn);     }     */ }  @override public void setscreen(screen screen) {      if (screen == null)         throw new illegalargumentexception("screen must not null");      this.screen.pause();     this.screen.dispose();     screen.resume();     screen.update(0);     this.screen = screen;  }   public screen getcurrentscreen() {      return screen; } 

}

// end of activity class // begin regular java class

public class inapppurchase extends screen {  androidgame buy = new purchaselevels();  public inapppurchase(game game) {     super(game);  }  @override public void update(float deltatime) {     // todo auto-generated method stub      @suppresswarnings("unused")     graphics g = game.getgraphics();     list<touchevent> touchevents = game.getinput().gettouchevents();      int len = touchevents.size();     for(int = 0; < len; i++) {         touchevent event = touchevents.get(i);         if(event.type == touchevent.touch_up) {              if(inbounds(event, 195, 142, 235, 55)) {                 // unlock level 2                 buy.leveltwobuttonclicked();             }                 if(inbounds(event, 195, 310, 235, 55)) {                 // unlock level 3              }              if(inbounds(event, 195, 490, 235, 55)) {                 // unlock level 4              }              if(inbounds(event, 70, 630, 210, 55)) {                 // restore button                 assets.click.play(1.00f);             }              if(inbounds(event, 330, 635, 130, 130)) {                 game.setscreen(new mainmenuscreen(game));                 assets.click.play(1.00f);             }          }     }  }   private boolean inbounds(touchevent event, int x, int y, int width,         int height) {     if (event.x > x && event.x < x + width - 1 && event.y > y             && event.y < y + height - 1){         return true;     } else {         return false;     } }  public void updateui(){    }  @override public void paint(float deltatime) {     // todo auto-generated method stub      }  }  @override public void pause() {     // todo auto-generated method stub  }  @override public void resume() {     // todo auto-generated method stub  }  @override public void dispose() {     // todo auto-generated method stub  }  @override public void backbutton() {     // todo auto-generated method stub  } 

} // main activity subclass had make create instance of abstract main activity "androidgame" in in app purchase class, in order call "leveltwobuttonclicked"

public class purchaselevels extends androidgame {  @override public screen getinitscreen() {     // todo auto-generated method stub     return null; } 

}


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -