2012-04-18 99 views
1

我已經通過Google的MapView教程,它可以在模擬器上正常工作,例如在我的HTC Flyer上。但由於某種原因,它在我的手機(Samsung Galaxy I9000)上啓動時會立即崩潰。某些設備上的MapView/MapActivity崩潰

崩潰發生在那裏,因爲在開始的時候,onCreate()收到的Bundle是null。我正在編譯Android 2.3.3。這也安裝在手機上。傳單使用Android 3.0

我非常感謝在這個奇怪的問題上的任何幫助。

這是excact logcat的輸出:

04-18 10:52:26.019: E/AndroidRuntime(1461): FATAL EXCEPTION: main 
04-18 10:52:26.019: E/AndroidRuntime(1461): java.lang.RuntimeException: Unable to start activity ComponentInfo{bernd.konnerth/bernd.konnerth.HelloMapViewActivity}: java.lang.NullPointerException 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.os.Looper.loop(Looper.java:123) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.ActivityThread.main(ActivityThread.java:3687) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at java.lang.reflect.Method.invoke(Method.java:507) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at dalvik.system.NativeStart.main(Native Method) 
04-18 10:52:26.019: E/AndroidRuntime(1461): Caused by: java.lang.NullPointerException 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.ContextImpl.openFileOutput(ContextImpl.java:495) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:158) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.common.io.android.AndroidPersistentStore.writeBlockX(AndroidPersistentStore.java:140) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.common.io.android.AndroidPersistentStore.writeBlock(AndroidPersistentStore.java:169) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.common.io.PreferenceStore.ensurePreferencesLoaded(PreferenceStore.java:178) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.common.io.PreferenceStore.readPreference(PreferenceStore.java:86) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.common.io.BasePersistentStore.readPreference(BasePersistentStore.java:41) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.common.StaticUtil.readPreferenceAsDataInput(StaticUtil.java:271) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.loadOrRequestCookie(DataRequestDispatcher.java:493) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.<init>(DataRequestDispatcher.java:390) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.createInstance(DataRequestDispatcher.java:341) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at com.google.android.maps.MapActivity.createMap(MapActivity.java:548) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at com.google.android.maps.MapActivity.onCreate(MapActivity.java:422) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at bernd.konnerth.HelloMapViewActivity.onCreate(HelloMapViewActivity.java:15) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
04-18 10:52:26.019: E/AndroidRuntime(1461):  ... 11 more 

感謝, 貝恩德

+0

什麼Logccat輸出正是 – 2012-04-18 08:42:02

+0

我已經添加它上面現在 – Bernd 2012-04-18 09:03:55

+0

看到[示例](HTTP:!?/ /android-example-code.blogspot.in/p/map-api-in-android.html)將幫助你... – MAC 2012-04-18 08:40:57

回答

3

我知道了!你猜怎麼了!這是重要的包名!

我發現在谷歌地圖樣本:

C:\ Android的SDK \插件\插件 - google_apis-google_inc_-10 \樣本\ MapsDemo

然後我剝離下來,直到它幾乎和我的一樣。我正在使用bernd.konnerth作爲包名稱。但是出於某種非常瘋狂的原因,顯然三星手機(也可能是其他設備)不接受這一點,並且在啓動時只是拋出NullPointerException,而沒有任何可能指向軟件包名稱問題的暗示。

當我使用com.bernd.konnerth一切工作正常。顯然必須有一個com。前面有。但要警惕!似乎有更多的名稱組合不起作用。偶然我發現,例如com.android.wifi不起作用!即使認爲這個包似乎並不存在於android命名空間中。

這樣的事情真的可以讓人瘋狂! :-(

不過感謝您的快速答覆

貝恩德

+2

如果只有我可以給你多一個+1 ... 非常感謝! – bhekman 2012-06-20 01:52:28

+0

很高興聽到我的發現幫助你! :-) – Bernd 2012-06-20 08:10:31

+0

謝謝!我可以繞過我的尾巴多年:) – 2012-06-29 07:11:42

相關問題