‘lateinit’ modifier is not allowed on properties of a type with nullable

While developing an abstract & generic base class where the generic parameter defines the type of an abstract field. The field would be initialized by the inherited classes, and so I applied the 'lateinit' modifier to it. This cause an interesting error:'lateinit' modifier is not allowed on properties of a type with nullable 

Continue reading “‘lateinit’ modifier is not allowed on properties of a type with nullable”

Tracking install sources for Android apps

Have you ever wanted to have a better idea of what’s the best source of your app installs? There’s information around the web on how to do it, but spread out over various sites, so I decided to write this post to consolidate the information.

Starting with Android 1.6, the Android Market’s emits a broadcast Intent named com.android.vending.INSTALL_REFERRER whenever certain parameters are added to the market url. Note that web version of the Market also passes these parameters to your devices upon install. Since the parameters need to follow the Google Analytics referral link format, Google provides a simple tool for generating these urls, or you could use a copy of my shared Google spreadsheet that I use to keep track of all my campaigns. Here’s a description for the important parameters:

Continue reading “Tracking install sources for Android apps”

“Incorrect AVA format” when creating a signing key

incorrectAVAHave you ever run into the error “Incorrect AVA format” when trying to sign an Android APK with a new key? It turns out this useless error more than likely means that you have used some illegal character in the signing data. In my case, I had used a comma in the company name which isn’t allowed for some reason. Just remove any extra characters and you should be good to go!


EDIT: Great comment below from Adam M Dutko:

Put a \ before the commas and it will work. Here is an example: OU=Test Company\, LLC

Adding formatted HTML text to your Android app


To help make our Android applications look even more professional, we can include HTML formatted text and display it in a WebView. Here’s the simplest way I’ve found to have local HTML, image and style files and display them. This is the same process I use to display help in Grandma Jong.

Continue reading “Adding formatted HTML text to your Android app”

Presenting tomorrow at BarCamp DC 3

Barcamp DC photo by jgarberI’m really excited about attending the third local BarCamp in DC tomorrow! Yep, we’re already on our third one here locally (not to mention all the others happening in the Baltimore-Washington D.C. area). I’m planning on co-presenting on Android development with Zvi Band. I’ll be showing a simple graphical app with animation and touch screen input.

I’m also using this opportunity to launch the first in a series of articles on Android development, gradually improving this simple app into something useable in a real app involving animations and graphics. Stay tuned, I’ll be posting the first article here sometime next week.

Adventures in mobile development

It’s about time I started writing again, so I’ll fill you in what I’ve been working on in my spare time over the last couple of months. Back in the day when I started iconoclast software, I developed several games for a touchscreen platform that was at the time found in airports, bars, etc. Ever since those were published, I’ve been dreaming of porting them to a mobile platform. Continue reading “Adventures in mobile development”

Resolving conflict between Google Desktop and Launchy

I use Launchy, a great program launcher for Windows and Linux, that indexes your Start menu, icons on the desktop and lets you quickly and easily launch them. It’s also smart about letting you type the least amount, and learns as you repeat the same shortcut over and over. I mapped the shortcut key to Windows+Space which is the most convenient for me. Continue reading “Resolving conflict between Google Desktop and Launchy”