java - Strange null pointer exception in Android Studios -


so while coding, encountered logically unexplainable.

public class player {      imageview playerimage;     bitmap playerbmp;     inputstream is;     drawable drawable;      public void draw(){          playactivity activity = new playactivity();         playerimage = (imageview) activity.findviewbyid(r.id.playerimage);          = activity.getresources().openrawresource(+r.drawable.main_character_drawing);         playerbmp = bitmapfactory.decodestream(is);          drawable = new bitmapdrawable(activity.getresources(), playerbmp);         playerimage.setimagedrawable(drawable);     } } 

and here playactivity class

public class playactivity extends activity {      player player;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_play);         player = new player();         player.draw();      } } 

and xml activity_play

  <imageview         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:id="@+id/playerimage"         android:layout_alignparenttop="true"         android:layout_alignparentleft="true"         android:layout_alignparentstart="true"         android:layout_margintop="100dp"         android:layout_marginleft="250dp"/> 

however, when run player.draw(), null-pointer exception. here error log :

07-07 17:49:05.291  31892-31892/com.example.testgame.henry. e/androidruntime﹕ fatal exception: main     java.lang.runtimeexception: unable start activity componentinfo{com.example.testgame.henry./com.example.testgame.henry.playactivity}: java.lang.nullpointerexception             @ android.app.activitythread.performlaunchactivity(activitythread.java:2070)             @ android.app.activitythread.handlelaunchactivity(activitythread.java:2095)             @ android.app.activitythread.access$600(activitythread.java:135)             @ android.app.activitythread$h.handlemessage(activitythread.java:1201)             @ android.os.handler.dispatchmessage(handler.java:99)             @ android.os.looper.loop(looper.java:137)             @ android.app.activitythread.main(activitythread.java:4849)             @ java.lang.reflect.method.invokenative(native method)             @ java.lang.reflect.method.invoke(method.java:511)             @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:795)             @ com.android.internal.os.zygoteinit.main(zygoteinit.java:562)             @ dalvik.system.nativestart.main(native method)      caused by: java.lang.nullpointerexception             @ android.app.activity.findviewbyid(activity.java:2045)             @ com.example.testgame.henry.player.draw(player.java:36)             @ com.example.testgame.henry.playactivity.oncreate(playactivity.java:26)             @ android.app.activity.performcreate(activity.java:5244)             @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1082)             @ android.app.activitythread.performlaunchactivity(activitythread.java:2034)             at android.app.activitythread.handlelaunchactivity(activitythread.java:2095)             at android.app.activitythread.access$600(activitythread.java:135)             at android.app.activitythread$h.handlemessage(activitythread.java:1201)             at android.os.handler.dispatchmessage(handler.java:99)             at android.os.looper.loop(looper.java:137)             at android.app.activitythread.main(activitythread.java:4849)             at java.lang.reflect.method.invokenative(native method)             at java.lang.reflect.method.invoke(method.java:511)             at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:795)             at com.android.internal.os.zygoteinit.main(zygoteinit.java:562)             at dalvik.system.nativestart.main(native method) 

long made short, problem seems line of code :

playerimage = (imageview) activity.findviewbyid(r.id.playerimage); 

is there sort of reason why causes null-pointer exception? i've found if replaced draw() method draw(activity activity), , deleted line

playactivity activity = new playactivity(); 

and instead wrote player.draw(this) (this being playactivity), run fine.

no null-pointer exception, though solution found exact same thing creating instance of playactivity. cause this?

i don't understand why it's giving null-pointer exception when create , use instance of playactivity, yet doesn't when pass playactivity method , use parameter variable (which playactivity).

playactivity activity = new playactivity(); 

does not give existing instance of playactivity. gives something, if anything, without valid context. in order make work, need use proper instance of playactivity find view , inflate it. more or less describe in text.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -