java - NullPointerException on getResources().getDisplayMetrics().density -
context
i'm working on small test code right now. selects image, resizes fit screen based on screen density. while this, makes copy of image @ size in xxhdpi
display, , converts bitmap, string. string carried through intent next screen string turned bitmap , placed in imagebutton
.
this worked fine until added in chunk of code resize image given string based on density. odd thing copied , pasted dpi() method activity , there no issues in activity.
code
package com.example.zachary.imagetesting.resizing; import android.app.activity; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.os.bundle; import android.util.base64; import android.view.view; import android.widget.imagebutton; import android.widget.textview; import com.example.zachary.imagetesting.r; public class picturedecoded extends activity { textview text; imagebutton image; string string; bitmap picture; public float dpi(){return getresources().getdisplaymetrics().density;} float dpi = dpi() * 180; int size = (int) dpi; public bitmap pic(string string){ try{ byte[] b = base64.decode(string, base64.default); bitmap bitmap = bitmapfactory.decodebytearray(b, 0, b.length); return bitmap; } catch (exception e) { e.getmessage(); return null; } } protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.resizing); string = getintent().getstringextra("string"); image = (imagebutton) findviewbyid(r.id.image); text = (textview) findviewbyid(r.id.text); picture = pic(string); image.setimagebitmap(bitmap.createscaledbitmap(picture,size,size,false)); } public void next(view view){ } // tried addring dpi() here no success. //public float dpi(){return getresources().getdisplaymetrics().density;} }
error log
01-15 19:55:17.104 30570-30570/com.example.zachary.imagetesting d/viewrootimpl: viewpostimeinputstage action_down 01-15 19:55:17.194 30570-30570/com.example.zachary.imagetesting e/bitmap string:: /9j/4aaqskzjrgabaqaaaqabaad/2wbdaaebaqebaqebaqebaqebaqebaqebaqebaqebaqebaqeb aqebaqebaqebaqebaqebaqebaqebaqebaqebaqebaqh/2wbdaqebaqebaqebaqebaqebaqebaqeb aqebaqebaqebaqebaqebaqebaqebaqebaqebaqebaqebaqebaqebaqebaqh/waarcagvahwdasia ahebaxeb/8qahwaaaqubaqebaqeaaaaaaaaaaaecawqfbgcicqol/8qatraaagedawieawufbaqa aaf9aqidaaqrbrihmuege1fhbyjxfdkbkaeii0kxwrvs0fakm2jyggkkfhcygroljicokso0nty3 odk6q0rfrkdisuptvfvwv1hzwmnkzwznaglqc3r1dnd4exqdhiwgh4ijipktljwwl5izmqkjpkwm p6ipqrkztlw2t7i5usldxmxgx8jjytlt1nxw19jz2uhi4+tl5ufo6erx8vp09fb3+pn6/8qahwea awebaqebaqebaqaaaaaaaaecawqfbgcicqol/8qatreaagecbaqdbacfbaqaaqj3aaecaxeebsex bhjbuqdhcrmimoeifekrobhbcsmzuvavynlrchyknoel8rcygromjygpkju2nzg5okneruzhselk u1rvvldywvpjzgvmz2hpann0dxz3ehl6gooehyahiimkkpoulzaxmjmaoqokpaanqkmqsro0tba3 ulm6wspexcbhymnk0tpu1dbx2nna4upk5ebn6onq8vp09fb3+pn6/9oadambaairaxeapwdukkkk /wavz/ugkkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkk aciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooa kkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigao oooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkacii igaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkk aciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooa kkkkaciiigaooooakkkkaciiiga45gemm+3xgetjoopx5odkrupauv6dpwppyemthj1zwhqk0mot 2qxqur2eo9h/bhhy/upcadqtlktexfkltu4l+wanbna0rttpjp8abnu/hrqdldw102uec/eua3nh xxkkakl1bzo1zfyxqoxewoq2jqziqkltf2zpe2aord2cpblmaflh0svxf6nbewnpbsk17lfqko+2 p056cuiopqc6elevkualkdrrrkme0ipqnlrytcg9p2spja6sw/k9wtu3adve6kkk7ywooooakkkk aciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooa kkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakkkkaciiigaooooakk0nm0jv9bub z6lpwo6vdhafrpdhd39yckgygtizpecf3ft1yfcvdv7lnxx8rwpcx+dn0a3fg2xxfqon6tlg5wws j7httqczw1lu68e43colzllcar47h4tcls31je0ale6sjgpuupn8rsopvye7ivsnbxnoef3ljr79 3/dfn69fn2ivtptp2hpitcghvffxhhsxgera2salkourtonwmergyimyhpjgdxww/sg6gv/0j4ow cb4hephcezc5ofmfxjaqmyx8pjjoqnvph1on+fkttloala/590mzwxb4qohqrf3v9tb43ck968do 0zvqlpyxafffa9z8/wcivvo8/yq8rirht/ipo1w38k3nh6/s1pjxuahu74rky6i2cspm25pbap+x b8y7eobcfwprqxo1btwz7oz+wxgatp9japyacg6wdn5satv0em+fq+km6wsdv40a+gxxvveuqss0 1bemt72d3hgyww1eh/b3nhy+0lf+vu+sak9g8vfch4oecxlhixwpr9hdccxv47f9q0kkcru/tbtd e6ebxndxqbgmge8+cjb5bypuexx6nv8arxknmvompicni6aq4xeuctsdrvkfwnvpto9rtpylhxld tfn33jkm1eeoyxelul16pvt+ers7lfqf8itcx43/alky8h6y8vxqgnhv9a0bultri2n6no85vpdv wjozilsrs+06wkzcgbtvtfq2ypja35e1+q37ew//aivbrqb/aff/aanmsex97j/4p/wnv6ng3ocn v8rfjyofifeoc6gr4fg0zezxobztb4ndvulzqqreiirpezuptje0koqv0cwpbjh1ookqdwnkl6p3 qlttsm++zva7/lc5triyurmyu4mhuroea1uywhzxxeessm0tdqgjkizwb5zkdiagr2t9opq4/dvx s+i+nralfjrp1ajqoauu2lvrbqoeiy38igdgghg3nxuvs8biy43a4pgr+hfyxd4mpkq9jvet+zxv 9nw1jvtpyu6cjraciyxpjn9/t/pvtffffdrquuuuaffffabrrrqauuuuaffffabrrrqauuuuafff fabrrrqauuuuaffffabrrrqauuuuaffffabrrrqauuuuaffffabrrrqauuuuaffffabrrrqauuuu affffabrrrqauuuuafh+f5+/t/png57nwd8nvgfxn1f+x/b+jzahlgea8vhjg0vtyxzle+pag6gk 1qlfkj+e6no9bw3mkqof0q+e37jhgbwoinw8x+t428rkyzv+22+pd2mzis2lhs5vyxrpimrean5m 4ckwgxtzm181n3feucpxccvvdbf8t6ebw7jovk/wyqxko0ipdsqtouvj04tkuu5q+lo4dntledtk cdzp4rx1tfoyacnrevrupvfa3w3/agfvif8afbuu9e0uabopkrg8q6+0unawystueyuwsxmqbvgd 2nw08akbimuimjnfdvgh9jp4begzheelrm98cx4jtnvdmts9bilafc8enwm32u4weat9qu1u6ls9 mpyp+wfvuavfcqafauaakoiuadgadhqoamadapa/g844+z7nhup0k39mywv0qwdlkndxu7e0xbar oxnr9jfqtjkduu341xmmruuoy9nf9iffu3rp4uvsytdno9zg0lw54f8ac2nrpxhvrdm0ltkwrzat y21halhxveg1iissq4bmjhnjwsxijoz/aj/n7/5yetzkor4qc51jynunkc5tynocnkcpdzslktcm +rbb829tibbbbbbe7bd2+7bbf5+reouuuvigooooamf4z5zjnv1/+st1gqfdfh37onwm+imd7lqh hq20fwls7/8ahifdqx6vqqz5ymezyonsnqd8gshurk6yj7jo43v7lrxvg8bjmvrkvgcvxwtzw/eu ks6cmoybuzcskpwvq4t5ostalfq97hodn81ocopvftxt3s9v5ptvc/i34r/so+pfh6l7rhh/d408 l2y+c93yw7r67yqgujg1hrlmrzrqgaveazldrimnpcwwkqc19r/shancar8dtfmuymhfw9w17w1r 1ksyzl4azbseh+ga20mkemnjmcgosdx03gf5/h/pr05okzhhhfgsuspfgocqqierrup3uqaaclsk pzj4+kzxjlms6ywnlwyu6vsrtxvku8bbeznvp06dehs6tgk9nzuvrtdslyrauyojf94+mrjklagq nrjtsuvalrtrurjxstf3m7rva29/xq/akvy7749+p3izws2m0kyld/n 01-15 19:55:17.194 30570-30570/com.example.zachary.imagetesting i/timeline: timeline: activity_launch_request id:com.example.zachary.imagetesting time:50420468 01-15 19:55:17.244 30570-30570/com.example.zachary.imagetesting d/androidruntime: shutting down vm 01-15 19:55:17.244 30570-30570/com.example.zachary.imagetesting e/androidruntime: fatal exception: main process: com.example.zachary.imagetesting, pid: 30570 java.lang.runtimeexception: unable instantiate activity componentinfo{com.example.zachary.imagetesting/com.example.zachary.imagetesting.resizing.picturedecoded}: java.lang.nullpointerexception: attempt invoke virtual method 'android.content.res.resources android.content.context.getresources()' on null object reference @ android.app.activitythread.performlaunchactivity(activitythread.java:2546) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2758) @ android.app.activitythread.access$900(activitythread.java:177) @ android.app.activitythread$h.handlemessage(activitythread.java:1448) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:145) @ android.app.activitythread.main(activitythread.java:5942) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1194) caused by: java.lang.nullpointerexception: attempt invoke virtual method 'android.content.res.resources android.content.context.getresources()' on null object reference @ android.content.contextwrapper.getresources(contextwrapper.java:90) @ android.view.contextthemewrapper.getresources(contextthemewrapper.java:74) @ com.example.zachary.imagetesting.resizing.picturedecoded.dpi(picturedecoded.java:20) @ com.example.zachary.imagetesting.resizing.picturedecoded.<init>(picturedecoded.java:21) @ java.lang.reflect.constructor.newinstance(native method) @ java.lang.class.newinstance(class.java:1650) @ android.app.instrumentation.newactivity(instrumentation.java:1079) @ android.app.activitythread.performlaunchactivity(activitythread.java:2536) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2758) @ android.app.activitythread.access$900(activitythread.java:177) @ android.app.activitythread$h.handlemessage(activitythread.java:1448) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:145) @ android.app.activitythread.main(activitythread.java:5942) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1399) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1194)
the large block of text string converted bitmap passed activity. left in in case useful. line before large block of text button click started intent activity crashes due nullpointerexception.
i can add other activities on request, since worked before tried resizing based on screen density didn't feel needed.
an activity
's base context
won't have been setup until after oncreate()
has finished executing. move initialization of dpi
oncreate()
after super.oncreate()
has been called.
Comments
Post a Comment