Android zxing throws NullPointerException -
i planing use zxing library provide qr code functionality in android app. able work, throws exception. using sample code provided library github link. can let me know causing exception?
links intentintegrator , intentresult classes.
sample code mainactiivity (used eclipse generate initial code):
package com.example.testapp; import android.app.activity; import android.app.alertdialog; import android.os.bundle; import android.util.log; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import com.google.zxing.integration.android.intentintegrator; public class mainactivity extends activity { private static final string tag = "mainactivity"; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); button b = (button) findviewbyid(r.id.button1); b.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { try { intentintegrator integrator = new intentintegrator( mainactivity.this); alertdialog d = integrator.sharetext("sample text here"); d.show(); } catch (exception e) { log.e(tag, log.getstacktracestring(e)); } } }); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } }
exception logcat:
04-09 13:08:13.923: e/mainactivity(27574): java.lang.nullpointerexception 04-09 13:08:13.923: e/mainactivity(27574): @ com.example.testapp.mainactivity$1.onclick(mainactivity.java:38) 04-09 13:08:13.923: e/mainactivity(27574): @ android.view.view.performclick(view.java:4633) 04-09 13:08:13.923: e/mainactivity(27574): @ android.view.view$performclick.run(view.java:19330) 04-09 13:08:13.923: e/mainactivity(27574): @ android.os.handler.handlecallback(handler.java:733) 04-09 13:08:13.923: e/mainactivity(27574): @ android.os.handler.dispatchmessage(handler.java:95) 04-09 13:08:13.923: e/mainactivity(27574): @ android.os.looper.loop(looper.java:157) 04-09 13:08:13.923: e/mainactivity(27574): @ android.app.activitythread.main(activitythread.java:5356) 04-09 13:08:13.923: e/mainactivity(27574): @ java.lang.reflect.method.invokenative(native method) 04-09 13:08:13.923: e/mainactivity(27574): @ java.lang.reflect.method.invoke(method.java:515) 04-09 13:08:13.923: e/mainactivity(27574): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1265) 04-09 13:08:13.923: e/mainactivity(27574): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1081) 04-09 13:08:13.923: e/mainactivity(27574): @ dalvik.system.nativestart.main(native method) 04-09 13:08:13.933: d/abslistview(27574): unregisterirlistener() called 04-09 13:08:14.518: d/abslistview(27574): onvisibilitychanged() called, visibility : 4 04-09 13:08:14.518: d/abslistview(27574): unregisterirlistener() called
thanks in advance.
solution:
thank help.
as tanis.7x pointed out below, error line d.show().
i trying write root of issue understand it, correct me if wrong.
the method sharetext()
returns dialogbox if , if cannot find package "com.google.zxing.client.android".
the dialog should used prompt user install application "barcode reader" playstore.
since had package (by including jar files in project), method returned null , made (stupid) error of calling method on that.
the sharetext()
method not guaranteed return dialog.
as per documentation, sharetext()
return:
the alertdialog shown user prompting them download app if prompt needed, or null otherwise
if user has app, there no need show dialog, , method return null.
also note dialog have been shown time method returns, not need show yourself. recommend looking through intentintegrator
source more information.
Comments
Post a Comment