After getting it fixed yesterday, I reinstalled CyanogenMod 6.0.2. Lo and behold, those Email Force Close errors showed up again. Great.
Fortunately I use GMail, so it doesn't really affect me, but it is very annoying.
With a trick I learned yesterday, I decided to see what was going on.
The trick is the Android Debug Bridge, or ADB. Among other things, it allows you to run shell commands on your phone. Since I have had Ubuntu for close to 2 years now, I'm naturally a Linux expert (quit laughing).
The specific command I am talking about is logcat. You plug your phone in, run adb logcat and you can see what's going on...it's a log file.
With it turned on, I went to applications and selected Email.
Sorry! The application Email (process com.android.email) has stopped unexpectedly. Please try again.
I then checked the log output...and what could it be? I'm thinking it's some sort of java error, but after reading more closely...
I/Database(19754): sqlite returned: error code = 1, msg = no such column: accountColorWhat's that? Database? Really?
D/AndroidRuntime(19754): Shutting down VM
W/dalvikvm(19754): threadid=1: thread exiting with uncaught exception (group=0x4001d7e0)
E/AndroidRuntime(19754): FATAL EXCEPTION: main
A little further down:
E/AndroidRuntime(19754): java.lang.RuntimeException: Unable to create service(formatted for better readability)
com.android.exchange.SyncManager: android.database.sqlite.SQLiteException: no such column:
accountColor: , while compiling: SELECT
_id,
displayName,
emailAddress,
syncKey,
syncLookback,
syncInterval,
hostAuthKeyRecv,
hostAuthKeySend,
flags,
isDefault,
compatibilityUuid,
senderName,
ringtoneUri,
protocolVersion,
newMessageCount,
securityFlags,
securitySyncKey,
signature,
accountColor
FROM Account
So someone forgot to add a column? Nice.
Now I know I can put a database on there, I'll be more likely to write something for it. :)
This is truly odd. Are you using the stock Mail app? I use that w/o any issues in Cyanogen 6.0. Maybe it's fixed in 6.1 (now RC)?
ReplyDeleteSQLite databases are pretty common. Firefox versions after 3 deploy one for profile data, see here: http://theappslab.com/2009/06/15/i-like-shiny-things/
You should apply your DBA-fu to mobile dbs.
I'm using whatever was default. GMail works just fine, it's just that one app.
ReplyDeleteIIRC, when researching my other issues, I ran across a fix out there for it...but I don't plan on applying it just yet (i have actual work to do).
I think development on there would be fun. Seems to be packaged nicely via Eclipse (i.e. really easy to deploy). Running a database on the phone would be cool...even cooler, get Oracle up and running on the thing. :)
I think the full blown DB is just a little too much. But "Oracle Berkeley DB 11g Release 2 introduces support for the Android platform"
ReplyDeletehttp://www.oracle.com/us/corporate/press/063695
Given the lawsuit against Google though maybe Android won't be a platform of choice. Maybe next year Larry will introduce the ExaPhone that allows 30 concurrent conversations over an Infiniband link while still running a couple of app servers in the background.
Looks to me like you have your fix, then. If you have cmdline access to your 'droid, should be pretty simple to add a the column to the sqlite table and make the error go away. ;-)
ReplyDelete@jp
ReplyDeletelol...that's awesome! hadn't even thought of that...$10 says that's not the only one, it's just the first one...but a very intriguing idea!
Also, learning to tinker with SQLite can be useful for other things, like Chrome and Firefox cookie extraction for OTN downloads:
ReplyDeletehttp://only4left.jpiwowar.com/2010/04/wget_otn_downloads/
@jp
ReplyDeleteawesome sauce!