Android 2.2 SDK breaks compatibility with older phones

三世轮回 提交于 2019-11-28 00:26:51

问题


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.


回答1:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/2923823/android-2-2-sdk-breaks-compatibility-with-older-phones

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!