In Android I'm trying to get an image from my gallery and convert it to base64, but the file path is a null reference -


here activity happening in:

package com.example.alexlevine.guestify;  import android.content.intent; import android.database.cursor; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.graphics.drawable.bitmapdrawable; import android.net.uri; import android.os.bundle; import android.provider.mediastore; import android.support.annotation.nonnull; import android.support.design.widget.navigationview; import android.support.v4.widget.drawerlayout; import android.support.v7.app.actionbardrawertoggle; import android.support.v7.app.appcompatactivity; import android.util.base64; import android.util.log; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.imageview; import android.widget.textview;  import com.google.firebase.auth.firebaseauth; import com.google.firebase.auth.firebaseuser; import com.google.gson.gson;  import org.json.jsonexception; import org.json.jsonobject;  import java.io.bufferedreader; import java.io.bufferedwriter; import java.io.bytearrayoutputstream; import java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.io.outputstream; import java.io.outputstreamwriter; import java.io.unsupportedencodingexception; import java.net.httpurlconnection; import java.net.url;  public class profileactivity extends appcompatactivity implements view.onclicklistener, navigationview.onnavigationitemselectedlistener {      textview t3;     button chooseimg, uploadimg;     imageview imgview;     int pick_image_request = 1;     uri filepath;     string path;     string encodedstring;     // private firebaseuser user;     private firebaseauth fbauth;     /*private textview textviewuseremail;      private button buttonlogout;      private databasereference dbref;*/      private drawerlayout mdrawerlayout;     private actionbardrawertoggle mtoggle;      public static string b64;     /**      * message : enrollment processed      * data : {"enrollment_id":"ahbzfmnodwlzcgrldgvjdg9ychclegpfbnjvbgxtzw50gicagid5r4ykda"}      * success : true      */      private string message;     //private databean data;     private boolean success;      //firebasedatabase storage = firebasedatabase.getinstance();      public profileactivity() {     }      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_profile);          b64 = null;          mdrawerlayout = (drawerlayout) findviewbyid(r.id.nav);         mtoggle = new actionbardrawertoggle(this, mdrawerlayout, r.string.open, r.string.close);          mdrawerlayout.adddrawerlistener(mtoggle);         mtoggle.syncstate();          setnavigationviewlistner();          getsupportactionbar().setdisplayhomeasupenabled(true);          final firebaseuser user = firebaseauth.getinstance().getcurrentuser();          chooseimg = (button)findviewbyid(r.id.chooseimg);         uploadimg = (button)findviewbyid(r.id.uploadimg);         imgview = (imageview)findviewbyid(r.id.imgview);          chooseimg.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 intent intent = new intent();                 intent.settype("image/*");                 intent.setaction(intent.action_get_content);                 startactivityforresult(intent.createchooser(intent, "select image"), pick_image_request);             }         });          enrollimg ei = new enrollimg();          new enrollimg().execute();          string r = enrollimg.resulttouse;          //t3.settext(r);          gson gson = new gson();         // databean db = gson.fromjson(r, databean.class);          //string enrollid = db.getenrollment_id();       }      @override     protected void onactivityresult(int requestcode, int resultcode, intent data) {         super.onactivityresult(requestcode, resultcode, data);          if (requestcode == pick_image_request && resultcode == result_ok && data != null && data.getdata() != null) {              try {                 final uri imageuri = data.getdata();                 path = getpath(imageuri);                  string[] filepathcolumn = {mediastore.images.media.data};                  cursor cursor = getcontentresolver().query(imageuri,                         filepathcolumn, null, null, null);                 cursor.movetofirst();                  int columnindex = cursor.getcolumnindex(filepathcolumn[0]);                 path = cursor.getstring(columnindex);                 cursor.close();                 //toast.maketext(personaldetails.this,imagepath, toast.length_short).show();                 final inputstream imagestream = getcontentresolver().openinputstream(imageuri);                 bitmap selectedimage = bitmapfactory.decodestream(imagestream);                  b64 = bitmaptostring(selectedimage);              } catch (filenotfoundexception e) {                 e.printstacktrace();             }          }     }      public string getpath(uri uri) {         string[] projection = { mediastore.images.media.data };         cursor cursor = managedquery(uri, projection, null, null, null);         if (cursor != null) {             // here nullpointer if cursor null             // can be, if used oi file manager picking media             int column_index = cursor                     .getcolumnindexorthrow(mediastore.images.media.data);             cursor.movetofirst();             return cursor.getstring(column_index);         } else             return null;     }      private void saveuserinformation() {         //firebaseuser user = fbauth.getcurrentuser();         //dbref.child(user.getuid()).setvalue("exp");     }      private void setnavigationviewlistner() {         navigationview navigationview = (navigationview) findviewbyid(r.id.navdrawer);         navigationview.setnavigationitemselectedlistener(this);      }      @override     public boolean onnavigationitemselected(@nonnull menuitem item) {         switch (item.getitemid()) {             case r.id.nav_account: {                 break;             }             case r.id.create: {                 break;             }             case r.id.org_manage: {                 break;             }             case r.id.join: {                 break;             }             case r.id.history: {                 break;             }             case r.id.logout: {                 fbauth.signout();                 finish();;                 startactivity(new intent(this, loginactivity.class));                 break;             }         }         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         if(mtoggle.onoptionsitemselected(item)) {             return true;         }         return super.onoptionsitemselected(item);     }      @override     public void onclick(view view) {      }      public string bitmaptostring(bitmap bitmap) {         bytearrayoutputstream baos = new bytearrayoutputstream();           bitmap.compress(bitmap.compressformat.jpeg, 70, baos);         byte[] b = baos.tobytearray();         string temp = base64.encodetostring(b, base64.default);         return temp;     }      string encodeimage(bitmap bitmap) {          bitmapfactory.options options = null;         options = new bitmapfactory.options();         options.insamplesize = 3;          bytearrayoutputstream stream = new bytearrayoutputstream();         // must compress image reduce image size make upload         // easy         try {              bitmap.compress(bitmap.compressformat.png, 90, stream);         } catch (exception e1) {             // todo auto-generated catch block          }          //system.out.println("size of bitmap " + sizeof(bitmap));          byte[] byte_arr = stream.tobytearray();         // encode image string          try {             encodedstring = base64.encodetostring(byte_arr, 0);         } catch (exception e) {             // todo auto-generated catch block         }           return encodedstring;      } }  

here logcat:

08-20 21:24:53.147 26753-26753/com.example.alexlevine.guestify  e/androidruntime: fatal exception: main  process: com.example.alexlevine.guestify, pid: 26753  java.lang.runtimeexception: failure delivering result resultinfo{who=null,  request=1, result=-1, data=intent {  dat=content://com.google.android.apps.docs.storage/document/acc=1;doc=1715  flg=0x1 }} activity  {com.example.alexlevine.guestify/com.example.alexlevine.guestify. profileactivity}: java.lang.nullpointerexception: attempt invoke virtual  method 'void android.widget.textview.settext(java.lang.charsequence)' on  null object reference  @ android.app.activitythread.deliverresults(activitythread.java:4323)  @ android.app.activitythread.handlesendresult(activitythread.java:4366)  @ android.app.activitythread.-wrap19(unknown source:0)  @ android.app.activitythread$h.handlemessage(activitythread.java:1649)  @ android.os.handler.dispatchmessage(handler.java:105)  @ android.os.looper.loop(looper.java:164)  @ android.app.activitythread.main(activitythread.java:6540)  @ java.lang.reflect.method.invoke(native method)  @ com.android.internal.os.zygote$methodandargscaller.run(zygote.java:240)  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:767)  caused by: java.lang.nullpointerexception: attempt invoke virtual method  'void android.widget.textview.settext(java.lang.charsequence)' on null  object reference  @ com.example.alexlevine.guestify.profileactivity.onactivityresult (profileactivity.java:143)  @ android.app.activity.dispatchactivityresult(activity.java:7237)  @ android.app.activitythread.deliverresults(activitythread.java:4319)  @ android.app.activitythread.handlesendresult(activitythread.java:4366)   @ android.app.activitythread.-wrap19(unknown source:0)   @ android.app.activitythread$h.handlemessage(activitythread.java:1649)   @ android.os.handler.dispatchmessage(handler.java:105)   @ android.os.looper.loop(looper.java:164)   @ android.app.activitythread.main(activitythread.java:6540)   @ java.lang.reflect.method.invoke(native method)   @ com.android.internal.os.zygote$methodandargscaller.run(zygote.java:240)   @ com.android.internal.os.zygoteinit.main(zygoteinit.java:767)  08-20 21:24:53.147 26753-26753/com.example.alexlevine.guestify  e/uncaughtexception: java.lang.runtimeexception: failure delivering result  resultinfo{who=null, request=1, result=-1, data=intent {  dat=content://com.google.android.apps.docs.storage/document/acc=1;doc=1715  flg=0x1 }} activity  {com.example.alexlevine.guestify/com.example.alexlevine.guestify. profileactivity}: java.lang.nullpointerexception: attempt invoke virtual  method 'void android.widget.textview.settext(java.lang.charsequence)' on  null object reference  @ android.app.activitythread.deliverresults(activitythread.java:4323)  @ android.app.activitythread.handlesendresult(activitythread.java:4366)  @ android.app.activitythread.-wrap19(unknown source:0)  @ android.app.activitythread$h.handlemessage(activitythread.java:1649)  @ android.os.handler.dispatchmessage(handler.java:105)  @ android.os.looper.loop(looper.java:164)  @ android.app.activitythread.main(activitythread.java:6540)  @ java.lang.reflect.method.invoke(native method)  @ com.android.internal.os.zygote$methodandargscaller.run(zygote.java:240)  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:767)  caused by: java.lang.nullpointerexception: attempt invoke virtual method  'void android.widget.textview.settext(java.lang.charsequence)' on null  object reference  @ com.example.alexlevine.guestify.profileactivity.onactivityresult (profileactivity.java:143)  @ android.app.activity.dispatchactivityresult(activity.java:7237)  @ android.app.activitythread.deliverresults(activitythread.java:4319)  @ android.app.activitythread.handlesendresult(activitythread.java:4366)   @ android.app.activitythread.-wrap19(unknown source:0)   @ android.app.activitythread$h.handlemessage(activitythread.java:1649)   @ android.os.handler.dispatchmessage(handler.java:105)   @ android.os.looper.loop(looper.java:164)   @ android.app.activitythread.main(activitythread.java:6540)   @ java.lang.reflect.method.invoke(native method)   @ com.android.internal.os.zygote$methodandargscaller.run(zygote.java:240)   @ com.android.internal.os.zygoteinit.main(zygoteinit.java:767)  

i looked @ several online forums , tried many variations of methods i'm using , convert images , nothing seems working. i'm not sure if null has image i'm testing in specific or code; code because has errors on homepage. please take @ this? thx!

you need initialize textview.it throws nullpointerexception textview not image related code. first initialize textview try settext it.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -