【问题标题】:NullPointerException - on setContentView with SupportMapFragmentNullPointerException - 在带有 SupportMapFragment 的 setContentView 上
【发布时间】:2016-01-03 20:40:43
【问题描述】:

我在 Android 5 设备上使用 SupportMapFragmentsetContentView 之后收到了带有 NPE 的崩溃报告!

查看:

            <fragment
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            class="com.google.android.gms.maps.SupportMapFragment" />

关于崩溃的代码声明:

setContentView(R.layout.misc);

例外:

我该如何解决这个问题?

课程似乎在电话中,否则我应该得到一个 ClassNotFound 异常。

那么导致NPE的原因是什么?

【问题讨论】:

  • 你学过谷歌教程吗?拥有所有权限和密钥?
  • 可以本地复现吗?或者这只是在崩溃报告中看到的?无论哪种方式,将您的相关代码添加到问题中......
  • @Daniel:我无法复制。它在这里工作正常。目前我只有 1 位用户的 1 份崩溃报告。它在 setContentView() 上崩溃,那么你的意思是什么相关代码?
  • @Itzik:它在我所有的设备上都运行良好。还有 99% 的用户。目前只有一个用户崩溃。

标签: android google-maps google-maps-api-3 supportmapfragment


【解决方案1】:

您使用的是 Eclipse 还是 Android Studio。您用于 Google 地图集成的库中存在问题。

【讨论】:

  • 正如我提到的,它可以在模拟器中运行,并且可以在我所有的设备上运行。所以完全没有问题。仅在某些手机上它会与 NPE 一起崩溃。
  • 我在 gradle 中使用最新版本:编译 "com.google.android.gms:play-services-maps:8.4.0" 并且我的活动扩展了 AppCompatActivity!
  • 当使用原生操作栏时,ABS 只是简单地将 setContentView 代理到框架或停止多次调用 setContentView。首先:您在实例化活动并初始化其成员变量时调用 findViewById()。该活动还没有窗口,它将是 NPE。仅在 onCreate() 或更高版本中调用 findViewById(),在 setContentView() 之后。第二:您没有 setContentView() 的视图层次结构,该视图层次结构具有给定 id 的视图。返回 null 并在其上调用方法将 NPE。
  • 谢谢,但它适用于我所有的手机、模拟器和 95% 的用户!所以它只在 2 或 5 个用户的手机上崩溃,我想防止这种情况发生。因此,如果我调用它两次或类似的东西,它会到处崩溃。所以我认为这款手机缺少一些东西。
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2015-12-17
  • 2012-08-26
相关资源
最近更新 更多