在 Android 应用程序中更改地图类型

哈里森先生

我现在正在编写一个简单的应用程序,一切正常,除非我添加了 mapType 更改。

package com.example.preset19;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Toast;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
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 MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;
static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
    mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);

}




/**
 * Manipulates the map once available.
 * This callback is triggered when the map is ready to be used.
 * This is where we can add markers or lines, add listeners or move the camera. In this case,
 * we just add a marker near Sydney, Australia.
 * If Google Play services is not installed on the device, the user will be prompted to install
 * it inside the SupportMapFragment. This method will only be triggered once the user has
 * installed Google Play services and returned to the app.
 */
@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;



    // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));



    LatLng Bern = new LatLng(46, 56);
    mMap.addMarker(new MarkerOptions().position(Bern).title("Marker in Bern"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(Bern));

    Marker melbourne = mMap.addMarker(new MarkerOptions()
            .position(MELBOURNE)
            .title("Melbourne")
            .snippet("Population: 4'137'400"));



    googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(10, 10))
            .title("Hello World"));


}

}

如果我想启动应用程序,它会崩溃而不显示之前的地图。Android Studio 没有检测到任何故障,但这是我的起始协议:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.preset19, PID: 13639
              Theme: themes:{default=overlay:com.cyngn.hexo, iconPack:system, fontPkg:com.cyngn.hexo, com.android.systemui=overlay:com.cyngn.hexo, com.android.systemui.navbar=overlay:com.cyngn.hexo}
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.preset19/com.example.preset19.MapsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setMapType(int)' on a null object reference
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
                  at android.app.ActivityThread.-wrap11(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:148)
                  at android.app.ActivityThread.main(ActivityThread.java:5461)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
               Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setMapType(int)' on a null object reference
                  at com.example.preset19.MapsActivity.onCreate(MapsActivity.java:35)
                  at android.app.Activity.performCreate(Activity.java:6251)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510) 
                  at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:148) 
                  at android.app.ActivityThread.main(ActivityThread.java:5461) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found.
I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:3
I/DynamiteModule: Selected remote version of com.google.android.gms.googlecertificates, version >= 3
W/System: ClassLoader referenced unknown path: /data/data/com.google.android.gms/app_chimera/m/00000023/n/armeabi-v7a
W/System: ClassLoader referenced unknown path: /data/data/com.google.android.gms/app_chimera/m/00000023/n/armeabi
I/Process: Sending signal. PID: 13639 SIG: 9
Application terminated.
贾梅多

这是因为您正在使用MMAP变量初始化之前,将下面这行代码mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);的内部onMapReady方法

如果你仔细阅读这里写的异常

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void com.google.android.gms.maps.GoogleMap.setMapType(int)”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在android应用程序中更改语言

来自分类Dev

Android应用程序中的奇怪地图行为

来自分类Dev

在Android中更改地图API密钥时未加载地图

来自分类Dev

离线地图应用程序开发Android

来自分类Dev

在 android 应用程序中更改语言时应用程序状态更改

来自分类Dev

从固件更改标准Android应用程序中的资源

来自分类Dev

防止Xamarin Android应用程序中的方向更改

来自分类Dev

Android应用程序中的GPS位置更改

来自分类Dev

如何更改Android中Twitter的应用程序访问权限?

来自分类Dev

在Intel XDK中更改Android应用程序图标

来自分类Dev

发布后在android应用程序中更改语言

来自分类Dev

从Android Cordova应用程序中的javascript更改KeepScreenOn

来自分类Dev

在Android应用程序中更改可绘制(PNG)

来自分类Dev

从固件更改标准Android应用程序中的资源

来自分类Dev

在Android中更改整个应用程序的字体

来自分类Dev

Android从其他应用程序更改服务中的变量

来自分类Dev

更改 android 应用程序资源中的语言

来自分类Dev

Android Studio 在应用程序中包含“更改颜色”选项

来自分类Dev

应用程序 Android Studio 中的语言未更改

来自分类Dev

Android是否可以在Google Maps API中更改地图的外观

来自分类Dev

用ArcGIS SDK for Android开发的Android应用程序中地图后面的网格是什么?

来自分类Dev

为什么在react应用程序中仅更改地图功能中的最后一项?

来自分类Dev

更改android应用程序语言

来自分类Dev

Android更改整个应用程序的字体

来自分类Dev

Android更改应用程序图标

来自分类Dev

如何更改android应用程序的版本

来自分类Dev

如何在android中同时更改地图上所有标记的颜色?如何只更改某些标记的颜色?

来自分类Dev

在android中在片段内使用地图时,应用程序后退时崩溃了?

来自分类Dev

如何在我的Google地图应用程序(Android)中检查Internet连接

Related 相关文章

  1. 1

    在android应用程序中更改语言

  2. 2

    Android应用程序中的奇怪地图行为

  3. 3

    在Android中更改地图API密钥时未加载地图

  4. 4

    离线地图应用程序开发Android

  5. 5

    在 android 应用程序中更改语言时应用程序状态更改

  6. 6

    从固件更改标准Android应用程序中的资源

  7. 7

    防止Xamarin Android应用程序中的方向更改

  8. 8

    Android应用程序中的GPS位置更改

  9. 9

    如何更改Android中Twitter的应用程序访问权限?

  10. 10

    在Intel XDK中更改Android应用程序图标

  11. 11

    发布后在android应用程序中更改语言

  12. 12

    从Android Cordova应用程序中的javascript更改KeepScreenOn

  13. 13

    在Android应用程序中更改可绘制(PNG)

  14. 14

    从固件更改标准Android应用程序中的资源

  15. 15

    在Android中更改整个应用程序的字体

  16. 16

    Android从其他应用程序更改服务中的变量

  17. 17

    更改 android 应用程序资源中的语言

  18. 18

    Android Studio 在应用程序中包含“更改颜色”选项

  19. 19

    应用程序 Android Studio 中的语言未更改

  20. 20

    Android是否可以在Google Maps API中更改地图的外观

  21. 21

    用ArcGIS SDK for Android开发的Android应用程序中地图后面的网格是什么?

  22. 22

    为什么在react应用程序中仅更改地图功能中的最后一项?

  23. 23

    更改android应用程序语言

  24. 24

    Android更改整个应用程序的字体

  25. 25

    Android更改应用程序图标

  26. 26

    如何更改android应用程序的版本

  27. 27

    如何在android中同时更改地图上所有标记的颜色?如何只更改某些标记的颜色?

  28. 28

    在android中在片段内使用地图时,应用程序后退时崩溃了?

  29. 29

    如何在我的Google地图应用程序(Android)中检查Internet连接

热门标签

归档