Android - IllegalStateException: карта имеет нулевой размер

Я начинающий Android-программист.

Позвольте мне дать некоторый контекст.
В моем проекте используется ActionBarSherlock.

  1. У меня есть действие (Activity1), которое содержит два фрагмента — SherlockListFragment и SherlockFragment, содержащий MapView карт Google (по сути, MapFragment).
  2. Результаты поиска отображаются во фрагменте списка и фрагменте карты, а кнопка опций панели действий переключает отображаемый в данный момент фрагмент между списком и картой.
  3. Выбор элемента в списке или на карте результатов поиска запускает новое действие (Activity2), отображающее данные из выбранного элемента.
  4. Это новое действие имеет аналогичный поток: фрагмент для отображения данных и фрагмент карты для отображения местоположения — переключается кнопкой параметров на панели действий.

Проблема:

  1. Я могу выбрать элемент списка во фрагменте списка результатов поиска (Activity1), и страница сведений (Activity2) успешно запущена.
  2. Когда я выбираю элемент карты из наложения карты в (Activity1), приложение аварийно завершает работу, и я получаю показанную ниже трассировку стека.

Что я пробовал до сих пор:

  1. Я искал «карта имеет нулевой размер» и множество вариантов одного и того же поиска, включая «android» и «illegalstateexception» и различные строки трассировки стека, и я изучил результаты, которые даже не относятся к Android, но относятся к API карт Google в целом, и я не смог найти ничего или кого-либо, кто столкнулся с этой ошибкой, кроме как по этому URL-адресу http://www .androidpub.com/1551654Но я не знаю корейского, и гугл-переводчик мне не очень помог.
  2. Я пытался найти несколько фрагментов исходного кода, чтобы посмотреть, что происходит, но ничего не вышло.
  3. Я добавил журналы в свой код, чтобы попытаться точно определить, где возникает исключение, и все, что мне удалось найти, это то, что оно возникает через некоторое время после (Activity2) запуска действия с подробными сведениями, то есть после onCreate( ) называется. И фрагмент деталей, и фрагмент карты были успешно созданы в onCreate(). Я не смог найти место в своем коде, чтобы даже поймать исключение.Итак, насколько я вижу, это исключение полностью является ошибкой в ​​коде Google MapView, но если я где-то допустил ошибку, пожалуйста, покажите ее. Я открыт для помощи от любого, кто может сказать мне, что здесь происходит.

Итак, в заключение. Сбой происходит при переходе от действия (Activity1) с отображаемым в данный момент представлением карты к другому действию (Activity2), в котором также размещен фрагмент, содержащий другое представление карты. Но сбой не происходит при переходе от фрагмента списка, отображаемого в (Activity1), к другому действию (Activity2), содержащему другой фрагмент карты.

Надеюсь, подробностей достаточно. Если у вас есть какие-либо вопросы, пожалуйста, прокомментируйте.

D/memalloc(  121): /dev/pmem: Allocated buffer base:0x4215c000 size:2088960 offset:4177920 fd:66
D/memalloc(30944): /dev/pmem: Mapped buffer base:0x5b4f5000 size:6266880 offset:4177920 fd:164
D/AndroidRuntime(30944): Shutting down VM
W/dalvikvm(30944): threadid=1: thread exiting with uncaught exception (group=0x40aaa228)
E/AndroidRuntime(30944): FATAL EXCEPTION: main
E/AndroidRuntime(30944): java.lang.IllegalStateException: Map has zero size
E/AndroidRuntime(30944):    at android_maps_conflict_avoidance.com.google.googlenav.map.Map.drawMap(Map.java:818)
E/AndroidRuntime(30944):    at com.google.android.maps.MapView.drawMap(MapView.java:1091)
E/AndroidRuntime(30944):    at com.google.android.maps.MapView.onDraw(MapView.java:522)
E/AndroidRuntime(30944):    at android.view.View.draw(View.java:11071)
E/AndroidRuntime(30944):    at android.view.View.getDisplayList(View.java:10462)
E/AndroidRuntime(30944):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
E/AndroidRuntime(30944):    at android.view.View.getDisplayList(View.java:10425)
E/AndroidRuntime(30944):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
E/AndroidRuntime(30944):    at android.view.View.getDisplayList(View.java:10425)
E/AndroidRuntime(30944):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
E/AndroidRuntime(30944):    at android.view.View.getDisplayList(View.java:10425)
E/AndroidRuntime(30944):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
E/AndroidRuntime(30944):    at android.view.View.getDisplayList(View.java:10425)
E/AndroidRuntime(30944):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
E/AndroidRuntime(30944):    at android.view.View.getDisplayList(View.java:10425)
E/AndroidRuntime(30944):    at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:879)
E/AndroidRuntime(30944):    at android.view.ViewRootImpl.draw(ViewRootImpl.java:1948)
E/AndroidRuntime(30944):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1654)
E/AndroidRuntime(30944):    at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2498)
E/AndroidRuntime(30944):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(30944):    at android.os.Looper.loop(Looper.java:154)
E/AndroidRuntime(30944):    at android.app.ActivityThread.main(ActivityThread.java:4894)
E/AndroidRuntime(30944):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(30944):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(30944):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(30944):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(30944):    at dalvik.system.NativeStart.main(Native Method)
E/EmbeddedLogger(  254): App crashed! Process: com.myapp.android
E/EmbeddedLogger(  254): App crashed! Package: com.myapp.android v5 (2.0)
E/EmbeddedLogger(  254): Application Label: myapp
W/ActivityManager(  254):   Force finishing activity com.myapp.android/.activity.InfoActivity
W/ActivityManager(  254):   Force finishing activity com.myapp.android/.activity.SearchActivity

16
задан Adam J 24 June 2012 в 22:53
поделиться