Приложение отлично работает на эмуляторе Eclipse, но с ошибками на телефоне - FroYo - PullRequest
1 голос
/ 03 февраля 2011

У меня есть приложение, которое (хотя я не уверен, почему) требует Android 2.2 по крайней мере для работы, поэтому после загрузки Froyo на телефон я протестировал приложение и, хотя оно устанавливается и начинает работать, когдаЯ выполняю функцию, она приводит к следующей ошибке:

"Приложение неожиданно остановилось. Пожалуйста, попробуйте еще раз."

Отлично работает на эмуляторе, которыйтакже работает Froyo, поэтому я не могу понять, в чем проблема.Ошибка в adb logcat выглядит следующим образом:

Вт / dalvikvm (1027): threadid = 1: поток выходит с необработанным исключением (group = 0x2aacc8a0)

И этодает исключение нулевого указателя, за исключением того, что я знаю, что исключение нулевого указателя не существует, так как оно отлично работает в эмуляторе, и я вижу из System.out в adb logcat, что значение не будет нулевым.

Кто-нибудь знает, что я могу сделать, чтобы это исправить?

Спасибо, что уделили время!

Редактировать: Вот запрашиваемый стек:

W / dalvikvm (861): threadid = 1: поток выходит с необработанным исключением (group = 0x2aacc8a0) E / AndroidRuntime (861): FATAL EXCEPTION: main E / AndroidRuntime (861): java.lang.NullPointerException E / AndroidRuntime (861): в com.andrWow.wCraftArmory.Armory.updateUI (Armory.java:150) E / AndroidRuntime (861): в com.andrWow.wCraftArmory.Armory.access $ 2 (Armory.java:140) E / AndroidRuntime (861): в com.andrWow.wCraftArmory.Armory $ carryOutSearch.onPostExecute (Armory.java:282) E / AndroidRuntime (861): на com.andrWow.wCraftArmory.Armory $ carryOutSearch.onPostExecute (Armory.java:1) E / AndroidRuntime (861): на android.os.AsyncTask.finish (AsyncTask.Java: 417) E / AndroidRuntime (861): на android.os.AsyncTask.access $ 300 (AsyncTask.java:127) E / AndroidRuntime (861): на android.os.AsyncTask $ InternalHandler.handleMessage (AsyncTask.java:429) E / AndroidRuntime (861): на android.os.Handler.dispatchMessage (Handler.java:99) E / AndroidRuntime (861): на android.os.Looper.loop (Looper.java:123) E / AndroidRuntime (861)): в android.app.ActivityThread.main (ActivityThread.java:4627) E / AndroidRuntime (861): в java.lang.reflect.Method.invokeNative (собственный метод) E / AndroidRuntime (861): в java.lang.refle.Method.invoke (Method.java:521) E / AndroidRuntime (861): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:876) E / AndroidRuntime (861): на ком.android.internal.os.ZygoteInit.main (ZygoteInit.java:634) E / AndroidRuntime (861): в dalvik.system.NativeStart.main (собственный метод) W / ActivityManager (123): принудительно завершить действие com.andrWow.wCraftArmory / .Armory

Вот код в строке 150 - Вторая строка - строка 150:

PlayerCharacter toon = worker.getToons().get(latestToon[0] + "&" + latestToon[1]); 
LinkedHashMap<String, LinkedHashMap<String, String>> bM = toon.getCategoryMap("baseStats");

Это далеко, только если результат присвоения "toon" не будет нулевым.Результат getCategoryMap с этим ключом также не должен быть нулевым, поскольку он довольно жестко запрограммирован на добавление значения с этим ключом при его создании.getCategoryMap - это метод получения, который проверяет, что HashMap содержит этот ключ, в противном случае он выдаст ошибку в system.out, которого там нет.

Исправлено:

Спасибо за вашу помощь всем.Я действительно не думал, что это было ошибкой в ​​коде, потому что я знал, что он работает на эмуляторе, и у меня он тоже работал один раз на телефоне, но оказалось, что это была ошибка с моим кодом.Получив FroYo, я настроил его, в том числе добавив новую клавиатуру, которая автоматически изменила регистр первой буквы, поэтому я решил, что неправильно обрабатывать верхний / нижний регистры - глупая ошибка.

Спасибо заВаше время, действительно ценится!

1 Ответ

1 голос
/ 03 февраля 2011

Ну, очевидный ответ таков: PlayerCharacter toon = worker.getToons().get(latestToon[0] + "&" + latestToon[1]); возвращает ноль.

Чтобы точно понять, почему вы можете разбить его на несколько шагов.Что latestToon[0] + "&" + latestToon[1] дает вам?Это то, что вы ожидаете?Я полагаю, getToons() возвращает какую-то карту?Каково его содержание?

...