tags:

views:

42

answers:

1

I currently have an app on the market that supports Android 1.5 (SDK level 3) and up. It also takes advantage of several features that are only present in Android 2.0 (SDK level 5) and up. I do this using Reflection.

I read a post on the Android Developer Blog that talks about how to support these new features while using no Reflection, which would be amazing. http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />

I have tested this out and while it works there is one huge downfall. Currently if I try to add a SDK level 5 class, but I don't know that it's a SDK level 5 class, there is no worries. Eclipse isnt going to find the class and I'm not going to be able to add it.

Using Google's recommended method does allow me to add the classes and gives me no notification that this code is targeted just to SDK level 5 users. This opens up too big of a possibility of adding in code that would break some users without knowing.

Does anyone know of any plugins, options, etc that would warn me at the places I have targeted SDK level 5 to keep this from happening?

+1  A: 

One possible way, and I havent tested this, would be to individually change Android manifest file and set android:targetSdkVersion to each SDK and try to compile. That way you will be able to sequentially test out each SDK support.

omermuhammed
I just tested that and it allows you to add and compile SDK version 5 code even with targetSDKVersion=3 present.
pcm2a
Sorry I didnt explain fully. I meant setting the targetSdkVersion and then setting the different SDK to compile with, in eclipse under Project -> Build Path -> Configure Build Path menu. Under Libraries tab in this screen add the version of Android you watn to compile with and test.
omermuhammed