Honeycomb SDK нарушил обратную совместимость GridView? - PullRequest
3 голосов
/ 29 апреля 2011

Я работаю над созданием версии приложения для планшета, которая будет совместима с устройствами версии 1.6 и выше, и вижу сбой, который должен быть связан с проблемой SDK.Я использую статическую библиотеку фрагментов, чтобы иметь возможность поддерживать фрагменты, но при этом поддерживать обратную совместимость.

Если я скомпилирую с библиотеками 2.3 sdk, приложение будет отлично работать как на устройстве 2.2, так и на Xoom.Тем не менее, если скомпилировано с 3.0 SDK, приложение отлично работает на Xoom, но аварийно завершает работу на устройствах перед сотовой структурой с этим исключением:

java.lang.NoSuchMethodError: android.widget.AbsListView.setAdapter

То, что я делаю в коде, в котором происходит сбой, - это установка адаптера для класса GridView с классом, расширяющим BaseAdapter.

Кто-нибудь еще видит это?

Спасибо, Джесс

Ответы [ 2 ]

10 голосов
/ 11 июля 2011

Не уверен в причинах исключения, но обходной путь должен привести ваше представление к типу AdapterView (класс, который определяет метод в сотах и ​​предварительно сотах).

AbsListView view = (AbsListView) findViewById(R.id.listview);
((AdapterView<ListAdapter>) view).setAdapter(mListAdapter);
2 голосов
/ 29 апреля 2011

Документы для AbsListView.setAdapter говорят, что он доступен начиная с уровня API Api - Android 3.0, поэтому я не удивляюсь, что вы получаете эту ошибку на устройствах до соты.

...