android - MapView/MapActivity 在某些设备上崩溃

标签 android crash android-mapview oncreate mapactivity

我已经完成了 Google 的 MapView 教程,它在模拟器上运行良好,例如在我的 HTC Flyer 上。但是由于某种原因,它在我的手机(Samsung Galaxy I9000)上启动时立即崩溃。

崩溃发生在那里,因为在开始时 onCreate() 接收到的 Bundle 是空的。我正在针对 Android 2.3.3 进行编译。这也安装在手机上。 Flyer 使用 Android 3.0

对于这个奇怪问题的任何帮助,我将不胜感激。

这是准确的 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

谢谢, 伯恩德

最佳答案

我明白了!你猜怎么了!重要的是包名!!!

我在以下位置找到了 Google map 示例:

C:\android-sdk\add-ons\addon-google_apis-google_inc_-10\samples\MapsDemo

然后我将其剥离,直到它与我的几乎相同。我使用 bernd.konnerth 作为包名。但出于一些非常疯狂的原因,显然三星手机(可能还有其他设备)不接受这一点,并在启动时简单地抛出一个 NullPointerException,没有任何进一步的暗示可能指向包名称问题。

当我使用 com.bernd.konnerth 时一切正常。显然前面肯定有一个com.。但请注意!似乎还有更多名称组合不起作用。我偶然发现 com.android.wifi 也不能正常工作!甚至认为这个包似乎不存在于 android 命名空间中。

这样的事情真是让人抓狂啊! :-(

不过还是感谢大家的快速回复!

本德

关于android - MapView/MapActivity 在某些设备上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205785/

相关文章:

android - 包含 ListView 时对话框太宽

iphone - iOS 崩溃 : Can't access memory location

c# - 启用“代码优化”选项时,应用程序崩溃

ios - 带有 iOS 6.1 的 GCD 中的 SIGABRT

android - 如何为 Android MapView 生成指纹?

当未从 Eclipse 安装 apk 时,Android map 无法工作

android - Azure 通知中心出现错误,并出现NotificationHubUnauthorizedException : Unauthorized in Android client

android - 有没有办法在 C++ 中以编程方式执行 adb 命令?这部分 C++ 代码是使用 android studio 中的 ndk build 构建的。那里

Android 数据库上次更新

android - 如何计算 Android Geocoder 结果的缩放级别