Google 地图片段在片段内返回 null

2024-03-13

所以我有一个包含地图片段的空片段。每当我尝试激活包含地图的片段时,我的应用程序都会崩溃并在这一行返回空指针错误:

map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                .getMap();

完整错误消息:

java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.GoogleMap com.google.android.gms.maps.MapFragment.getMap()' on a null object reference
            at com.collusion.serviceassistant.ReturnVisitDetails.onViewCreated(ReturnVisitDetails.java:39)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
            at android.app.BackStackRecord.run(BackStackRecord.java:684)
            at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
            at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)

这是我的片段代码:

import android.app.Activity;
import android.app.Dialog;
import android.net.Uri;
import android.os.Bundle;
import android.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;


public class ReturnVisitDetails extends Fragment {

    static final LatLng HAMBURG = new LatLng(53.558, 9.927);
    static final LatLng KIEL = new LatLng(53.551, 9.993);
    private GoogleMap map;
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_return_visit_add, container, false);
        return rootView;
    }

    public void onViewCreated(View view, Bundle savedInstanceState)
    {
        // Get a handle to the Map Fragment
        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                .getMap();
        Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
        Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel")
                .snippet("Kiel is cool")
                .icon(BitmapDescriptorFactory
                        .fromResource(R.drawable.ic_launcher)));

        // Move the camera instantly to hamburg with a zoom of 15.
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));

        // Zoom in, animating the camera.
        map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
    }
}

我的父片段 XML 布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.collusion.serviceassistant.ReturnVisitDetails"
    android:background="#009688">


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

</RelativeLayout>

有人知道为什么地图片段返回 null 吗?

编辑:所以现在我有这个代码来初始化地图:

MapFragment mapFragment = new MapFragment();
        FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        transaction.add(R.id.rl_map_container, mapFragment).commit();
        map = mapFragment.getMap();
        Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
        Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel")
                .snippet("Kiel is cool")
                .icon(BitmapDescriptorFactory
                        .fromResource(R.drawable.ic_launcher)));

        // Move the camera instantly to hamburg with a zoom of 15.
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));

        // Zoom in, animating the camera.
        map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);

并且它仍然返回一个空指针值


我已经解决了这个问题。 当我有 viewpager 时这一行:

mMap = ((SupportMapFragment) MainActivity.fragmentManager
                .findFragmentById(R.id.mapView)).getMap();

你必须改变成这样:

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

Google 地图片段在片段内返回 null 的相关文章

  • ViewPager 显示的第一个片段与 FragmentStatePager 总是错误的

    我正在尝试拥有相同的view pager tabs设计为 PlayStore 5 1 x 这是我的布局
  • 在 Android strings.xml 文件中使用 HREF

    我正在尝试从 strings xml 文件中为 TextView android text 属性分配以下字符串 我无法让链接显示为可点击的超链接 有什么建议么 我尝试过以下技术
  • SQLite 中的 NOT NULL 列和错误捕获

    我有一个由用户定义的 EditText 填充的数据库 所有编辑文本都不允许有空字段 我知道我可以通过几个简单的 if 语句来检查这一点 if myEditText getText toString equals display error
  • 在styles.xml中设置所有按钮样式

    我想让我的应用程序有多种样式 样式更改按钮样式 文本视图颜色和布局背景颜色 我的按钮样式位于 xml 文件中 这是我的代码 style xml v21
  • 如何使用 zXing 在 Android 中创建 IntentIntegrator

    我想创建一个对象IntentIntegrator在安卓中 IntentIntegrator integrator new IntentIntegrator ZBarReaderActivity this Here ZBarReaderAct
  • 如何在状态更改时更改 Android 切换按钮的文本颜色?

    我的切换按钮对于每个状态都有不同的颜色背景 红色和白色 现在我需要在激活时更改切换按钮文本 红色 白色 的颜色 使用 xml 我无法让它工作 也许有人知道我做错了什么 我的布局 xml 中的按钮
  • 删除SD卡上的文件夹

    I tried File delete 但它不起作用 如何删除SD卡上的目录 我正在开发 Android 2 1 在删除目录本身之前 您必须将所有目录清空 请参阅here http www rgagnon com javadetails j
  • 无法从视图转换为按钮

    我在这里遇到非常令人沮丧的问题 我有这个代码 Button b findViewById android R id button1 我收到了这个错误 类型不匹配 无法将表单视图转换为按钮 但是按钮1is一个按钮 在我的 XML 布局文档中
  • Android - 对话框内VideoView的MediaController出现在对话框后面

    我有一个VideoView在自定义对话框中 我正在为VideoView即时并将其分配给VideoView在代码中 但是控制器实际上并没有出现在视频上 它出现在对话框后面 知道如何让控制器位于视频上方吗 我创建了一个静态对话框帮助器类来帮助构
  • Android 上 WebRTC 的自定义视频源

    Overview 我想使用自定义视频源通过 WebRTC Android 实现来直播视频 如果我理解正确的话 现有的实现仅支持 Android 手机上的前置和后置摄像头 以下类与此场景相关 Camera1Enumerator java ht
  • Android 原生 AAssetManager 的文件层次结构

    Issue 我想知道如何从本机代码创建 Android 中资产文件夹的文件层次结构 我在用着AAssetManager openDir but AAssetDir getNextFileName不返回任何目录名称 因此基本上我无法深入了解层
  • 如果从超链接打开,应用程序将启动两次

    我正在开发一个应用程序 可以从多个地方启动 例如日历中的超链接 我在以下场景中面临问题 如果应用程序已启动并在后台运行 并且用户单击本机日历中的事件 超链接来启动应用程序 我的应用程序作为新实例启动两次 在正在运行的应用程序列表中 我可以看
  • 以编程方式卸载 Android 应用程序

    我希望能够允许我的用户从我的应用程序中卸载应用程序 就像 Google Play 商店允许其用户一样 请下图 主要问题是如何定义一个按钮 按下它我们可以通过提供包名称或其他一些信息来卸载应用程序 就像图像上的卸载按钮一样 try Inten
  • Android HTTP PUT 请求

    谁能给我一个HTTP PUT请求 Android 的示例代码 假设您想使用 HttpURLConnection 要执行 HTTP PUT 请使用以下命令 URL url new URL http www example com resour
  • Android 中可以导入 java.rmi.* 吗?

    我的分布式系统课程中有一个项目 我们必须在我们的项目中使用 java rmi 而且我知道由于 dalvik VM 问题 android 不提供这个库 所以我只是想问是否可以在 Android 上使用这些库 Thanks Android 不支
  • 在 NumberPicker 中显示更多数字

    我有两个问题 第一个问题是删除 NumberPicker 中的分隔线 我在 Android 中扩展 NumberPicker 来解决这个问题 如下所示 import android content Context import androi
  • Android Studio:src/androidTest 和 src/main 文件夹之间的区别?

    我是 Android Studio 的新手 我的问题是 src androidTest 和 src main 文件夹有什么区别 我所有的课程应该放在哪里 Refer Android Studio 概述 http developer andr
  • 我收到“循环依赖”Android Dagger Hilt 错误

    我从头开始检查了所有内容 但找不到错误 我找不到错误 可能是什么 我收到以下编译错误 HomeViewModel java 6 error ComponentProcessor MiscError dagger internal codeg
  • 如何在运行时检查授予权限?

    In Android M 预览版 用户可以选择特定的应用程序并检索特定的权限 所以我问如何在运行时检查授予权限 您可以使用以下复制的代码https android googlesource com platform frameworks b
  • Visual Studio代码无法检测到模拟器设备或连接的电话

    I was running my app with vscode using Android emulator or my phone however all of a sudden vscode could not identify an

随机推荐

  • 我安装了 2 个版本的 python,但 cmake 使用的是旧版本。如何强制 cmake 使用较新版本?

    我安装了 2 个版本的 python 但是cmake正在使用旧版本 我该如何强迫cmake使用较新的版本 您可以根据需要尝试以下任一方法 For CMake gt 3 12 根据变更日志 新的 FindPython3 和 FindPytho
  • 字符串格式和十六进制字符

    有人可以解释为什么这不起作用 string f string Format x 0 00 0 5 string o string Format f INSERT TEXT System Diagnostics Debug WriteLine
  • 在 Laravel-Excel 中导出大数据

    使用此代码 我可以将 MyModel 的数据导出到 Excel 工作正常 Excel create Filename function excel excel gt sheet Contratos function sheet datos
  • Docker-machine:找不到 ca.pem

    在这里 我使用 docker 机器创建一个测试机器 dev docker machine create d virtualbox dev Creating CA C Users xxx docker machine certs ca pem
  • 使用 Prolog 中的累加器计算多项式的计算问题

    背景 我需要编写一个谓词 eval P A R 其中 P表示多项式系数列表 即1 2x 3x 2表示为 1 2 3 A 代表 X 的值 R 是 X A 处多项式的结果 Example eval 3 1 2 3 R 产生 R 24 编辑 之前
  • 角度指令 - 要求嵌入?

    我在下面收到错误 我不明白为什么 有任何想法吗 html
  • 当侧面项目具有不同宽度时,保持中间项目居中

    想象一下以下布局 其中点代表框之间的空间 Left box Center box Right box 当我删除右侧的框时 我喜欢中心框仍然位于中心 如下所示 Left box Center box 如果我删除左侧的框 情况也是如此 Cent
  • 使用 C++ 连接数据并将其插入到 MS Access 表中

    我正在开发一个项目 需要我对 MS Access 表执行插入查询 我一直在网上到处搜索 但似乎没有任何效果 任何帮助将不胜感激 另外 我必须为 VS2008 和 Visual C 6 0 编写此内容 谢谢 Use ODBC https le
  • 简单的 XML 解析 XML 到列表

    我使用 Simple XML simple xml 2 6 2 jar 来解析 xml 文件 例如
  • 哪个 MySQL 排序规则比较,例如é 和 e 相等吗?

    编辑 如果不存在这样的排序规则 如果 MySQL 有一个将字符串转换为 ASCII 等价物的函数 我可以解决它 FUNC V re Vaere 可能有几个这样的函数 每个字母表一个 这会很麻烦 但如果有效的话也是可以接受的 我需要一个 My
  • 什么是急切加载?

    什么是急切加载 我用 PHP JS 编码 但更通用的答案就可以了 我看到了很多关于 Java 和 Ruby 的问题 但我对这些语言都一窍不通 而且我发现很难阅读代码 我不知道首先应该做什么 共有三个级别 急切加载 当被要求时你会做一切 典型
  • “值初始化”是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 以下短语在 C 中意味着什么 零初始化 默认初始化和值初始化 https stackoverflow com questions 1613341 what do the following phras
  • 在 Team Services 中的构建之间复制工件

    我们的代码被分成多个项目 项目 A 中的库随后由项目 B 使用 项目 B 再由项目 C 使用 等等 但是 我找不到在构建之间共享工件的方法 所有构建步骤都是关于发布工件的 但似乎没有一个是关于下载它们的 除了 Jenkins 下载工件 这正
  • Access 2010:连接三个表,未知错误

    我正在尝试在 SQL 查询中连接 MS Access 2010 中的三个表 SELECT Track trackName TrackIsGenre genre ContainsTracks albums FROM Track INNER J
  • 如何在苹果拒绝元数据后仅提交应用程序详细信息,以避免将应用程序添加到审核时钟

    由于演示帐户详细信息无效而导致元数据被拒绝后 我们是否可以重新提交应用程序 以避免添加回审核队列并重新启动审核时钟 As Per 此链接是 iTunes Connect 和元数据拒绝的一个简单错误 http www brynbodayle
  • 使图像空白透明,覆盖到 imshow()

    我有一个用 imshow 显示的空间数据图 我需要能够覆盖产生数据的晶格 我有一个PNG 作为黑白图像加载的晶格文件 我想要的该图像的部分 覆盖是黑线 它们是晶格 看不到线之间的白色背景 我想我需要将每个背景 白色 像素的 Alpha 设置
  • 如何简化复杂的多边形?

    最近我一直在思考如何将复杂的多边形转换为非复杂的多边形 这是怎么做到的 这就是我想做的事情 完成后我将使用 JavaScript 但任何形式的解决方案都可以 语言 算法或简单的英语 我将使用与手动绘制多边形时相同的启发式 这可能不是计算该多
  • 基本动画 HTML 和 CSS

    所以我只是一个初学者 我只是想弄清楚动画及其工作原理 我的计划是在一条直线上以无限度数 比方说 90 度 无限地移动球 以下是我想知道的几个问题 有没有更好的方法来使用具有共同规则和略有不同规则 具有不同旋转 的类 如何让球在具有不同旋转的
  • 检查变量是否是液体中的字符串或数组类型

    在 Jekyll 中你可以使用液体模板 https shopify github io liquid 我正在尝试编写一个包含网站中所有链接的导航 sitemap home demo right right left left 我想要实现的是
  • Google 地图片段在片段内返回 null

    所以我有一个包含地图片段的空片段 每当我尝试激活包含地图的片段时 我的应用程序都会崩溃并在这一行返回空指针错误 map MapFragment getFragmentManager findFragmentById R id map get