Я постараюсь быть конкретным, если смогу - пожалуйста, будьте терпеливы, впервые обжалуйтесь и относительно новичок в программировании на этой платформе. Извините, если это было спрошено/ответили раньше - свяжите его со мной. Я искал вверх и вниз, но обнаружил другие не связанные (по крайней мере) проблемы.Аварийный адаптер адаптера пользовательского списка в bindView на эмуляторе - не на телефоне
Настоящий puzzler для меня - это то, что мое приложение рушится на моем эмуляторе, но когда оно установлено на моем телефоне (через загрузку apk на телефон, а затем с помощью приложения AppInstaller с рынка), это работает.
Ошибка произошла из исключения NullPointerException в нумерованной строке в следующем фрагменте кода (мой код) адаптера курсора пользовательского списка.
// TaskListCursorAdapter.java
@Override
public void bindView(View view, Context context, Cursor cursor) {
super.bindView(view, context, cursor); // <<< LINE 36
// DO OTHER BINDING OF STRINGS TO TEXT VIEWS ETC
Создан следующий дамп ошибки.
08-23 21:58:57.251: ERROR/AndroidRuntime(346): Uncaught handler: thread main exiting due to uncaught exception
08-23 21:58:57.411: ERROR/AndroidRuntime(346): java.lang.NullPointerException
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.SimpleCursorAdapter.bindView(SimpleCursorAdapter.java:149)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at adriaansapps.com.tasks.TaskListCursorAdapter.bindView(TaskListCursorAdapter.java:36)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at adriaansapps.com.tasks.TaskListCursorAdapter.newView(TaskListCursorAdapter.java:83)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.CursorAdapter.getView(CursorAdapter.java:182)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.AbsListView.obtainView(AbsListView.java:1274)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.ListView.measureHeightOfChildren(ListView.java:1147)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.ListView.onMeasure(ListView.java:1060)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.View.measure(View.java:7964)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:619)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.LinearLayout.onMeasure(LinearLayout.java:280)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.View.measure(View.java:7964)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:569)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:361)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.View.measure(View.java:7964)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.View.measure(View.java:7964)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.LinearLayout.measureVertical(LinearLayout.java:464)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.View.measure(View.java:7964)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.View.measure(View.java:7964)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.ViewRoot.performTraversals(ViewRoot.java:763)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.os.Handler.dispatchMessage(Handler.java:99)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.os.Looper.loop(Looper.java:123)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at android.app.ActivityThread.main(ActivityThread.java:4363)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at java.lang.reflect.Method.invokeNative(Native Method)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at java.lang.reflect.Method.invoke(Method.java:521)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-23 21:58:57.411: ERROR/AndroidRuntime(346): at dalvik.system.NativeStart.main(Native Method)
Любопытно меня счастливо программирования и отладки прочь весь день и из голубых длинные рабочих и ошибки свободная часть моего приложения теперь бросают эту ошибку.
Я подозреваю, что это может быть проблема с базами данных, но на самом деле не уверен - ничего не стоит здесь. До сегодняшнего дня у меня была база данных с одной таблицей - сегодня я добавил новую таблицу, в которой также есть поле «_id» в качестве поля ключа автоинкремента имени, которое я прочитал в документах, для адаптеров списка Android (если используется память) , Имея некоторый опыт в области кодирования и некоторый небольшой опыт работы с базами данных, это кажется мне плохой идеей, но я не уверен, что это проблема и/или как это сделать.
Сбой, который я перечисляю здесь, не отображает или не делает ссылку на данные в другой, новой таблице. Курсор не содержит никаких данных запроса. На самом деле, если я переименую ключевое поле «_id» в новую таблицу на что-то другое (т.е. «_blah»), крах остается.
Как я уже сказал, если я загружаю apk на свой телефон, он работает.
Я попытался следующий на эмуляторе: - повторный запуск ADB (и затмение) - никакого результата - удаление из эмулятора - никакого результата - не Destory профиля AVD и воссоздавать - никакого результата
Я разрабатываю этот под Android 2.1 SDK, и были в течение последних нескольких недель. У меня только когда-то был установлен SDK, я еще не обновился до версии 2.2.
Не знаю, что еще я могу здесь сказать - надеясь, что кто-то здесь имеет достаточно опыта, чтобы пролить свет на него.
Без исправления, я могу предвидеть очень медленный процесс разработки здесь (при условии, что мне нужно загрузить на свой телефон, чтобы протестировать новые изменения кода ...).
Извините за то, что я долгое время намотка - надеюсь, что я предоставляю достаточно информации для одного из вас умнее людей, чтобы прибить это. Спасибо
ФП цепочки реализации суперкласса из 'BindView()', который является вполне разумным. – CommonsWare
Хммм - а победитель radek-k Но почему? Я хочу объяснить, пожалуйста, чтобы я мог учиться. Я не думал, что это проблема, потому что (а) она была в учебниках и (б) мое приложение работает с этим довольно долгое время. Но, для пинков, я думал, что прокомментирую это и престо, приложение теперь счастливо работает. Я также попытался вернуть все обратно к тому, как я это сделал, прежде чем предлагать предложения здесь, и он все еще работает с этой строкой, прокомментированной. Ответы? Обоснование? Пожалуйста? – Adriaan