我最近被催促更新我的应用程序以使用谷歌地图 API v2。(谷歌最终停止为 v1 授予 API 密钥。)我已经实现了新的 api,使其与我的应用程序之前的工作方式相同,令我满意。除了,我注意到发生了一个奇怪的错误。
当我转到我使用 SupportMapFragment 的活动时,按返回返回上一个活动,然后再次前进到 SupportMapFragment 活动,它会随机崩溃......有时很快,有时需要一分钟。唯一改变的是我正在使用新的 API,因此重构了代码以使用新的 API。
04-25 08:00:24.415: W/dalvikvm(12746): threadid=28: thread exiting with uncaught exception (group=0x40b9f930)
04-25 08:00:24.445: E/AndroidRuntime(12746): FATAL EXCEPTION: Thread-1711
04-25 08:00:24.445: E/AndroidRuntime(12746): java.lang.NullPointerException
04-25 08:00:24.445: E/AndroidRuntime(12746): at libcore.net.http.RequestHeaders.addCookies(RequestHeaders.java:285)
04-25 08:00:24.445: E/AndroidRuntime(12746): at libcore.net.http.HttpEngine.prepareRawRequestHeaders(HttpEngine.java:724)
04-25 08:00:24.445: E/AndroidRuntime(12746): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:217)
04-25 08:00:24.445: E/AndroidRuntime(12746): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:282)
04-25 08:00:24.445: E/AndroidRuntime(12746): at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
04-25 08:00:24.445: E/AndroidRuntime(12746): at maps.z.bk.run(Unknown Source)
04-25 08:00:24.475: W/ActivityManager(517): Force finishing activity com.___.___/com.___.___.activities.ActivityWithMap
04-25 08:00:24.625: D/overlay(158): Unset pipe=VG0 dpy=0; Unset pipe=VG1 dpy=0; Unset pipe=RGB1 dpy=0;
04-25 08:00:37.398: I/Process(12746): Sending signal. PID: 12746 SIG: 9
04-25 08:00:37.418: I/ActivityManager(517): Process com.___.___ (pid 12746) has died.
04-25 08:00:37.418: W/ActivityManager(517): Force removing ActivityRecord{4178d2a8 u0 com.___.___/com.___.___.activities.PreviousActivity}: app died, no saved state
04-25 08:00:37.428: W/InputDispatcher(517): channel '41e3b688 com.___.___/com.___.___.activities.PreviousActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
04-25 08:00:37.428: E/InputDispatcher(517): channel '41e3b688 com.___.___/com.___.___.activities.PreviousActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
04-25 08:00:37.428: W/InputDispatcher(517): Attempted to unregister already unregistered input channel '41e3b688 com.___.___/com.___.___.activities.PreviousActivity (server)'
04-25 08:00:37.428: I/WindowState(517): WIN DEATH: Window{41a48790 u0 com.___.___/com.___.___.activities.ActivityOther}
04-25 08:00:37.428: I/WindowState(517): WIN DEATH: Window{41e3b688 u0 com.___.___/com.___.___.activities.PreviousActivity}
如果它有帮助,如果我在返回 MapFragment 活动后打开和关闭屏幕,它似乎会更快地崩溃......
我知道这与两次启动活动有关,但我在任何地方都看不到任何会导致这种奇怪崩溃的东西,另外,它并没有在 v1 上发生...... bleh。
已经多次尝试谷歌试图找出它......
此外,如果这有帮助,异常似乎发生在 bk.run() 的单独线程中,如堆栈跟踪中所述,但我的应用程序继续在我的设备上运行,而它在 eclipse 中暂停,直到我让该线程去然后应用程序实际上崩溃了。
我还确认,当我使用地图片段两次进入活动时会发生崩溃,即使我从未对地图做任何事情,甚至在 SupportMapFragment 上调用 getMap(),所以它肯定是某种问题地图片段或加载谷歌地图。旋转时也会崩溃(因为重新创建了活动。)