Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android 2.2 SDK breaks compatibility with older phones

I have recently updated my app to a build tarket of SDK version 8 in order to include the App2SD feature for my users.

However I have had reports of devices on SDK 3 (1.5) having problems starting the application, with the following stack trace:

...
E/AndroidRuntime(10638): Caused by: android.content.res.Resources$NotFoundException: File      res/drawable/title_bar_shadow.9.png from drawable resource ID #0x7f020000
E/AndroidRuntime(10638): at android.content.res.Resources.loadDrawable(Resources.java:1641)
E/AndroidRuntime(10638): at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
E/AndroidRuntime(10638): at android.view.View.<init>(View.java:1726)
E/AndroidRuntime(10638): at android.view.View.<init>(View.java:1675)
E/AndroidRuntime(10638): at android.view.ViewGroup.<init>(ViewGroup.java:271)
E/AndroidRuntime(10638): at android.widget.LinearLayout.<init>(LinearLayout.java:92)
E/AndroidRuntime(10638): ... 26 more
E/AndroidRuntime(10638): Caused by: java.io.FileNotFoundException: res/drawable/title_bar_shadow.9.png
E/AndroidRuntime(10638): at android.content.res.AssetManager.openNonAssetNative(Native Method)
E/AndroidRuntime(10638): at android.content.res.AssetManager.openNonAsset(AssetManager.java:392)
E/AndroidRuntime(10638): at android.content.res.Resources.loadDrawable(Resources.java:1634)
E/AndroidRuntime(10638): ... 31 more

If i change the build target back to version 4 as it was previously this issue goes away, also if i remove any graphical resources from my XML files this issue goes away!

Any help would be much appreciated as i currently have a broken app on the market for many users.

like image 338
Tom Avatar asked May 27 '10 18:05

Tom


2 Answers

This might be related to different image densities and how SDK 1.5 cant handle that out of the box. Take a look here and here.

like image 80
omermuhammed Avatar answered Nov 19 '22 16:11

omermuhammed


You should be able to do minSdk=3 targetSdk=8 and build against the 2.2 libraries it should work. You just cannot use any of the sdk api that isn't part of the 1.5 api. You will also have to manually install the app to the 1.5 emulator to test it but it should work.

like image 23
Robby Pond Avatar answered Nov 19 '22 18:11

Robby Pond