IRLP Finder crashing on Android 2.1?
I have seen several comments on the market and here on the blog about IRLP Finder crashing on some Droid, Nexus and Eris phones.
First of all, I am really sorry that the app is crashing and I want to get to the bottom of this. Overall the app is working for the majority of people, but I really want the app to work on those cool phones.
Yesterday I went into the Verizon Wireless store and tried the app on a Droid and an Incredible, both running 2.1_update1. Just as Murphy’s law would have predicted, the app ran perfectly fine. I could search, click on nodes, zoom in and out and see the result list. I was really hoping to see the crash, but I couldn’t.
So at this point I know the app is crashing, but personally I can’t reproduce it (yet). So I am wondering if anyone out there who can reproduce the crash might be able to help me by sending me stack traces of the crash to info@hamdroid.com?
All you need would be to install the free SDK on your machine, connect the phone with USB and run the “adb shell” command. Instructions can be found here:
Inside the adb shell, you can use the “logcat” command to look at the system log. Once the app crashes you will find a stack trace there. It will look similar to this:
E/gmail-ls( 129): java.lang.RuntimeException: Received operationId of 0 as last-examined-server-op. Wiping. E/gmail-ls( 129): at com.google.android.providers.gmail.MailEngine.wipeAndResync(MailEngine.java:273) E/gmail-ls( 129): at com.google.android.providers.gmail.MailEngine.access$200(MailEngine.java:92)
In the meantime, I will try and add even more error checking to the app. Before the release I tried a number of corner cases and error conditions and added checks for them in the code, but apparently I missed something.
[Begin Stack Trace]
I/ActivityManager( 1364): Displayed activity com.hamdroid.irlpfinder/.IrlpFinder: 1061 ms (total 106
1 ms)
I/wpa_supplicant( 4937): CTRL-EVENT-SCAN-RESULTS Ready
D/NetworkLocationProvider( 1364): updateWifIScanResults(): 1 APs
D/LocationMasfClient( 1364): getNetworkLocation(): Returning cache location with accuracy 5000.0
D/libgps ( 1364): GpsInterface_inject_location( 35.595484, -120.672343, 5000.000 )
D/WifiService( 1364): releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 binder=android.
os.Binder@448c0f08}
W/KeyCharacterMap( 5086): Can’t open keycharmap file
W/KeyCharacterMap( 5086): Error loading keycharmap file ‘/system/usr/keychars/qtouch-touchscreen.kcm
.bin’. hw.keyboards.65538.devname=’qtouch-touchscreen’
W/KeyCharacterMap( 5086): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
D/dalvikvm( 5086): GC freed 3748 objects / 314696 bytes in 77ms
D/dalvikvm( 1423): GC freed 411 objects / 24160 bytes in 130ms
W/dalvikvm( 5086): threadid=17: thread exiting with uncaught exception (group=0x4001b180)
E/AndroidRuntime( 5086): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception
E/AndroidRuntime( 5086): java.lang.RuntimeException: An error occured while executing doInBackground
()
E/AndroidRuntime( 5086): at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime( 5086): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask
.java:273)
E/AndroidRuntime( 5086): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime( 5086): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307
)
E/AndroidRuntime( 5086): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime( 5086): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecu
tor.java:1068)
E/AndroidRuntime( 5086): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExec
utor.java:561)
E/AndroidRuntime( 5086): at java.lang.Thread.run(Thread.java:1096)
E/AndroidRuntime( 5086): Caused by: java.lang.NumberFormatException:
E/AndroidRuntime( 5086): at org.apache.harmony.luni.util.FloatingPointParser.parseFloat(Float
ingPointParser.java:305)
E/AndroidRuntime( 5086): at java.lang.Float.parseFloat(Float.java:288)
E/AndroidRuntime( 5086): at java.lang.Float.valueOf(Float.java:327)
E/AndroidRuntime( 5086): at com.hamdroid.irlpfinder.IrlpFinder$SearchTask.getNodeInfo(IrlpFin
der.java:392)
E/AndroidRuntime( 5086): at com.hamdroid.irlpfinder.IrlpFinder$SearchTask.doInBackground(Irlp
Finder.java:263)
E/AndroidRuntime( 5086): at com.hamdroid.irlpfinder.IrlpFinder$SearchTask.doInBackground(Irlp
Finder.java:1)
E/AndroidRuntime( 5086): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime( 5086): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305
)
E/AndroidRuntime( 5086): … 4 more
I/Process ( 1364): Sending signal. PID: 5086 SIG: 3
I/dalvikvm( 5086): threadid=7: reacting to signal 3
I/dalvikvm( 5086): Wrote stack trace to ‘/data/anr/traces.txt’
D/WifiService( 1364): acquireWifiLockLocked: WifiLock{NetworkLocationProvider type=2 binder=android.
os.Binder@448c0f08}
D/NetworkLocationProvider( 1364): getLocation(): triggering a wifi scan
D/NetworkLocationProvider( 1364): onCellLocationChanged [4769,0,0,40,4]
I/wpa_supplicant( 4937): CTRL-EVENT-SCAN-RESULTS Ready
D/NetworkLocationProvider( 1364): updateWifIScanResults(): 1 APs
D/LocationMasfClient( 1364): getNetworkLocation(): Returning cache location with accuracy 5000.0
D/libgps ( 1364): GpsInterface_inject_location( 35.595484, -120.672343, 5000.000 )
D/WifiService( 1364): releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 binder=android.
os.Binder@448c0f08}
[End Stack Trace]
If you need more info, I’ll copy another section.
IRLP finder seems to work fine on my Samsung Mesmerize running 2.1