android - Contact Picker app crashes on phone but not on emulator -
so have example code android spinners, , modified little show contacts in 1 of spinners, , on emulator works fine, shows 5 entries have added in contacts, on phone crashes right on startup, , can't understand logcat, wrong? here,s code
// add items spinner dynamically public void additemsonspinner2() { spinner2 = (spinner) findviewbyid(r.id.spinner2); list = new arraylist<string>(); getcontacts(null); arrayadapter<string> dataadapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_item, list); dataadapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner2.setadapter(dataadapter); } private string getcontacts(string contact) { people = getcontentresolver().query(contactscontract.contacts.content_uri, null, null, null, null); while (people.movetonext()) { int namefieldcolumnindex = people.getcolumnindex(phonelookup.display_name); contact = people.getstring(namefieldcolumnindex); list.add(contact); } people.close(); return contact; }
and in logcat
07-31 13:35:55.638: i/process(11956): sending signal. pid: 11956 sig: 9 07-31 13:36:06.990: i/process(12013): sending signal. pid: 12013 sig: 9 07-31 13:38:02.463: e/trace(12130): error opening trace file: no such file or directory (2) 07-31 13:38:02.463: d/activitythread(12130): settargetheaputilization:0.25 07-31 13:38:02.463: d/activitythread(12130): settargetheapidealfree:8388608 07-31 13:38:02.473: d/activitythread(12130): settargetheapconcurrentstart:2097152 07-31 13:38:02.584: d/androidruntime(12130): shutting down vm 07-31 13:38:02.584: w/dalvikvm(12130): threadid=1: thread exiting uncaught exception (group=0x40d7b450) 07-31 13:38:02.594: e/androidruntime(12130): fatal exception: main 07-31 13:38:02.594: e/androidruntime(12130): java.lang.nullpointerexception 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.arrayadapter.createviewfromresource(arrayadapter.java:394) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.arrayadapter.getview(arrayadapter.java:362) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.absspinner.onmeasure(absspinner.java:193) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.spinner.onmeasure(spinner.java:440) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.view.measure(view.java:15348) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4924) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1420) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.linearlayout.measurevertical(linearlayout.java:697) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.linearlayout.onmeasure(linearlayout.java:578) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.view.measure(view.java:15348) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4924) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.framelayout.onmeasure(framelayout.java:314) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.view.measure(view.java:15348) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.linearlayout.measurevertical(linearlayout.java:849) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.linearlayout.onmeasure(linearlayout.java:578) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.view.measure(view.java:15348) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4924) 07-31 13:38:02.594: e/androidruntime(12130): @ android.widget.framelayout.onmeasure(framelayout.java:314) 07-31 13:38:02.594: e/androidruntime(12130): @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2154) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.view.measure(view.java:15348) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:1860) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1108) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1281) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1006) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:4225) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.choreographer$callbackrecord.run(choreographer.java:725) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.choreographer.docallbacks(choreographer.java:555) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.choreographer.doframe(choreographer.java:525) 07-31 13:38:02.594: e/androidruntime(12130): @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:711) 07-31 13:38:02.594: e/androidruntime(12130): @ android.os.handler.handlecallback(handler.java:615) 07-31 13:38:02.594: e/androidruntime(12130): @ android.os.handler.dispatchmessage(handler.java:92) 07-31 13:38:02.594: e/androidruntime(12130): @ android.os.looper.loop(looper.java:213) 07-31 13:38:02.594: e/androidruntime(12130): @ android.app.activitythread.main(activitythread.java:4787) 07-31 13:38:02.594: e/androidruntime(12130): @ java.lang.reflect.method.invokenative(native method) 07-31 13:38:02.594: e/androidruntime(12130): @ java.lang.reflect.method.invoke(method.java:511) 07-31 13:38:02.594: e/androidruntime(12130): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:809) 07-31 13:38:02.594: e/androidruntime(12130): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:576) 07-31 13:38:02.594: e/androidruntime(12130): @ dalvik.system.nativestart.main(native method)
turns out first entry in phone empty (null), knows why... , fixed this
public void getcontacts() { people = getcontentresolver().query(contactscontract.contacts.content_uri, null, null, null, null); while (people.movetonext()) { int namefieldcolumnindex = people.getcolumnindex(phonelookup.display_name); string s = people.getstring(namefieldcolumnindex); if (s != null) list.add(s); } people.close(); }
Comments
Post a Comment