Я начинающий программист-программист.
Позвольте мне привести некоторый контекст.
В моем проекте используется ActionBarSherlock.
- У меня есть активность (Activity1), которая содержит два фрагмента - SherlockListFragment и SherlockFragment, содержащие карты google MapView (в основном MapFragment).
- Результаты поиска отображаются в фрагменте списка и фрагменте карты, а кнопка параметров панели действий переключает отображаемый в настоящее время фрагмент между списком и картой.
- Выбор элемента в списке или карта результатов поиска запускает новое действие (Activity2), отображающее данные из выбранного элемента.
- В этом новом действии есть аналогичный поток: фрагмент, чтобы показать данные, и фрагмент карты, чтобы показать местоположение, переключаемое кнопкой параметров панели действий.
Проблема:
- Я могу выбрать элемент списка в фрагменте списка результатов поиска (Activity1), и страница сведений (Activity2) успешно запущена.
- Когда я выбираю элемент карты из наложения карты в (Activity1), приложение выходит из строя, и я получаю стек, который показан ниже.
Что я пробовал до сих пор:
- Я искал "карта имеет нулевой размер" и множество перестановок одного и того же поиска, включая "android" и "wrongstateexception" и различные строки stacktrace, и я изучил результаты, которые даже не связаны с Android, но относятся к google-картам apis в целом, и я не смог найти никого или кого-либо еще, кто столкнулся с этой ошибкой, за исключением этого url http://www.androidpub.com/1551654 Но я не знаю корейский, и Google translate не помог.
- Я попытался найти некоторые фрагменты исходного кода, чтобы узнать, что происходит, но ничего не получилось.
- Я добавил журналы в свой код, чтобы попытаться определить, где произошло исключение, и все, что я смог найти, это то, что он происходит через некоторое время после (Activity2), когда начинается действие сведений, то есть после onCreate ( ) называется. И фрагмент деталей, и фрагмент карты были успешно созданы в onCreate(). Я даже не смог найти место в своем коде, чтобы поймать исключение. Поэтому для всего, что я вижу, это исключение, по-видимому, является полностью ошибкой в коде Google MapView, но если я допустил ошибку в любом месте, пожалуйста, покажите это. Я открыт для всех, кто может рассказать мне, что здесь происходит.
Итак, в резюме. Сбой происходит при переходе от активности (Activity1) с отображением в настоящее время карты к другому действию (Activity2), в котором также размещен фрагмент, содержащий другое mapview. Но авария не возникает при переходе от фрагмента списка, отображаемого в (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