Android 2.2 SDK нарушает совместимость со старыми телефонами - PullRequest
8 голосов
/ 27 мая 2010

Я недавно обновил свое приложение до версии сборки SDK версии 8, чтобы включить функцию App2SD для моих пользователей.

Однако у меня были сообщения об устройствах на SDK 3 (1.5), имеющих проблемы с запуском приложения, со следующей трассировкой стека:

...
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

Если я изменю цель сборки обратно на версию 4, как это было ранее, эта проблема исчезнет, ​​а также если я удалю любые графические ресурсы из моих файлов XML, эта проблема исчезнет!

Любая помощь будет принята с благодарностью, так как в настоящее время у меня на рынке есть сломанное приложение для многих пользователей.

Ответы [ 2 ]

13 голосов
/ 27 мая 2010

Это может быть связано с различной плотностью изображения и тем, как SDK 1.5 не может справиться с этим из коробки. Взгляните здесь и здесь .

2 голосов
/ 27 мая 2010

Вы должны быть в состоянии сделать minSdk = 3 targetSdk = 8 и собрать его из библиотек 2.2, которые должны работать. Вы просто не можете использовать ни один из API SDK, который не является частью API 1,5. Вам также придется вручную установить приложение в эмуляторе 1.5, чтобы протестировать его, но оно должно работать.

...