SupportMapFragment 或 GoogleMap 为 null

2023-12-04

设法使代码没有错误,但是在启动时,我总是在 mMap = mapFrag.getMap(); 行处收到空指针异常。

为什么会这样呢?我是否缺少一些导入或一些步骤?我不确定是否是 SupportMapFragment 或 GoogleMap 对象导致了问题。

package com.fragments;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

public class MapFragment extends SherlockMapFragment {

    private GoogleMap mMap;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = super.onCreateView(inflater, container, savedInstanceState);
        SupportMapFragment mapFrag= (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.fragment_map);
        mMap = mapFrag.getMap(); //null pointer is here
        return root;
    }
}

Edit:这是基于这个问题给出的解决方案的实现的一部分here


请注意,您不需要使用自定义Fragment子类必须使用 Maps V2。如果您的片段只是纯粹的地图,您可以创建MapFragment or SupportMapFragment从活动中进行配置并在那里进行配置。

您甚至不需要创建某种SherlockMapFragment能够让地图成为基于 ActionBarSherlock 的应用程序的一部分。常规的SupportMapFragment工作得很好。

如果您确实希望在片段中拥有更多商业智慧,and如果您使用 ActionBarSherlock,and有问题的业务逻辑需要执行与 ActionBarSherlock 相关的操作(例如,向操作栏提供操作项),then只有这样你才需要担心有某种SherlockMapFragment.

我可以确认这个要点包含一个工作SherlockMapFragment。请注意,它进入com.actionbarsherlock.app包,因为它需要对 ActionBarSherlock 的其余部分进行一些受包保护的访问。

然后您可以对其进行子类化,例如创建一个MyMapFragment:

public class MyMapFragment extends SherlockMapFragment {
  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    if (getMap() != null) {
      Log.d(getClass().getSimpleName(), "Map ready for use!");
    }
  }
}

你必须要小心打电话的时间getMap()——太快了,它会回来的null. onActivityCreated()尽管您可以自由地进行实验,但似乎是一个相当安全的时间。

然后,你只需使用MyMapFragment无论你会使用什么地方SupportMapFragment:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.commonsware.android.mapsv2.sherlock.MyMapFragment"/>

这是完整的项目包含上述代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SupportMapFragment 或 GoogleMap 为 null 的相关文章

随机推荐

  • 使用包含竖线的正则表达式匹配字符串

    I have 123 456 789 我只能捕捉 123 使用正则表达式 d 但不确定如何捕获完整的字符串 我对此很陌生 我将感谢任何帮助 d 这应该有效 从竖线开始 重复数字和可选的竖线
  • Graphviz---随机节点顺序和经过标签的边

    我有以下点文件 digraph finite state machine rank same node shape doublecircle q 5 node shape circle q 1 gt q 2 label q 1 gt q 2
  • 无法使用pip安装python包,需要获取Microsoft Visual C++ 14.0

    我正在尝试安装pyjks 我正在管理命令提示符下运行所有 内容 最初尝试安装 pyjks 的结果是 C WINDOWS system32 gt pip install pyjks Collecting pyjks Collecting py
  • 带标题的 PHP Mail() 函数

    当我将 header 与 PHP mail 函数一起使用时 我总是很困难 问题总是一样的 去年 这次 只要我记得 就让我抓狂 问题在于标题仅显示在电子邮件中 收到的邮件示例 Source onderwerp Bedankt voor uw
  • 防止 jQuery Mobile 上的水平滚动

    有没有办法最好仅使用 CSS 来防止移动设备上的水平页面滚动 这是一个例子 http jsfiddle net YfLst 15 Update 以下代码解决了 iOS 上的问题 但 Android 上的问题仍然存在 html body ov
  • 如何在 Eclipse 中以调试模式运行外部工具

    由于各种原因 我的项目只能作为已完成且打包的 JAR 运行 组装时会发生一些神奇的事情 因此我将其作为 Eclipse 中的外部工具运行 我缺少的是调试功能 有没有办法在 Eclipse 中以调试模式运行外部工具 如果远程 JVM 已在调试
  • 记录完成谷歌表单所需的时间

    我正在尝试记录完成并提交 Google 表单所需的总时间 我的逻辑很简单 以下代码将记录时间戳并将其作为多项选择选项 然后 在提交表单后 我们无论如何都会得到一个时间戳 但与此同时 我们也会得到最初记录的时间戳作为该问题的答案 这是我可爱的
  • JSONEncoder 的 dateEncodingStrategy 不起作用

    我正在尝试使用 Swift 4 的 Encodable JSONEncoder 将结构序列化为字符串 该对象可以保存异构值 例如 String Array Date Int 等 除了日期之外 所使用的方法工作正常 JSON编码器的dateE
  • 如何派生具有类型族的记录的实例

    这是我正在尝试但无法编译的内容 LANGUAGE TypeFamilies LANGUAGE StandaloneDeriving LANGUAGE FlexibleInstances import Data Text as T impor
  • URL缩短网站

    我正在开发一个使用 PHP MySQL 和 Apache 的 URL 缩短网站 当我查看开源项目时 URL 缩短的总体思路是 用户提供 URL 链接 系统从数据库获取该链接的 ID 然后转换 ID X 基数系统 我使用的是 36 基数 然后
  • 删除连续的重复单元格

    只是为了澄清 我不想删除重复的行 我想删除行中的重复单元格 这是一个经典的地址表 在某些行中有重复的条目 我需要删除这些条目 我在 VBA 中看到的大部分内容都是用于删除列中的重复值 但我找不到删除行中的重复值的方法 Name Addres
  • 是否有工具/解决方案可以对循环进行编程,其中仅每 X 次迭代检查一次条件?

    例如 我有一个由 while 循环组成的函数 这个函数会检查素数 function isprime int number int i 2 int max int sqrt number 1 while i
  • 将中立者放在一边的李克特图

    我正在使用 Likert 包来创建调查问卷图 我想创建一个像这样的情节 其中中性反应被搁置 你知道在 R 中是否有办法做到这一点 一个如何重现情节的简单例子 lst lt c I dislike them a lot I dislike t
  • 如何将 facebook api 中的日期转换为 android 应用程序日期格式

    我正在开发一个类似于 android facebook 应用程序的应用程序 我从 Facebook 应用程序获得了创建的时间字段 created time 2012 11 28T12 53 40 0000 那么 我怎样才能将其转换为 and
  • C 指针:数组变量

    我在我的书中读到了这一点 以及互联网上的许多来源 数组变量points到数组中的第一个元素 如果为真 则数组变量和第一个元素是不同的 Right 这意味着通过下面的代码 它将产生两种不同的结果 int main char msg stack
  • 有没有办法在 Javascript 中组合对象

    我正在用 Javascript 进行一些数据清理 我想知道是否有一种方法可以根据通用 ID 组合对象 鉴于以下情况 subject Hadji Singh predicate nameOfUser id 3f540200 58b9 40a5
  • R Kruskal-Wallis 与多个因素

    我正在寻求帮助 对我的数据集执行大量因素的 Kruskal Wallis 检验 我可以对单个因素进行测试 例如 AD 1yr kruskal test Shannon AD 1y data comm 但我想要测试 50 多个因素 并且希望有
  • C 中未定义长度的数组

    我正在看教科书中的一个练习 内容是 创建一个 C 程序 从键盘获取长度为 N 的数组 问题是 在C语言中 如何创建未定义长度的数组 谢谢你们 不要创建未定义长度的数组 After得到需要的长度N 如果 C99 使用 VLA 可变长度数组 i
  • 垂直对齐位于浮动同级旁边的 Div 中的多行文本

    我有两个兄弟姐妹 其中一个占据父级宽度的 70 并向左浮动 它有一个clip path创建不规则多边形 同级 div 的宽度为父级 div 的 100 我已经放了一个shape outside浮动 div 上的属性允许同级中的文本以遵循多边
  • SupportMapFragment 或 GoogleMap 为 null

    设法使代码没有错误 但是在启动时 我总是在 mMap mapFrag getMap 行处收到空指针异常 为什么会这样呢 我是否缺少一些导入或一些步骤 我不确定是否是 SupportMapFragment 或 GoogleMap 对象导致了问