Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法解析方法getMap()_Java_Android_Google Maps - Fatal编程技术网

Java 无法解析方法getMap()

Java 无法解析方法getMap(),java,android,google-maps,Java,Android,Google Maps,我试图在我的应用程序中获得一个工作的映射片段,当我试图获得我的GoogleMap对象时,我继续得到一个错误 FragmentWithMap.java 这是XML 用_map.xml分割_ 我从另一个应用程序复制了代码,其中getMap()方法只是不推荐使用,所以我怀疑问题出在代码本身。我不反对使用getMapAsync(),如果不需要的话,我宁愿不使用getMapAsync()。但由于某种原因,我在这里收到了错误 “无法解析方法'getMap()'” 。我也收到了一个错误 “错误:任务执行失

我试图在我的应用程序中获得一个工作的映射片段,当我试图获得我的GoogleMap对象时,我继续得到一个错误

FragmentWithMap.java

这是XML

用_map.xml分割_


我从另一个应用程序复制了代码,其中getMap()方法只是不推荐使用,所以我怀疑问题出在代码本身。我不反对使用getMapAsync(),如果不需要的话,我宁愿不使用getMapAsync()。但由于某种原因,我在这里收到了错误

“无法解析方法'getMap()'”

。我也收到了一个错误

“错误:任务执行失败”:应用程序:CompiledBugJavaWithJavaC”

编译失败;有关详细信息,请参阅编译器错误输出。“

尽管我不能确定它是否与此问题有关。

以前不推荐使用
getMap()
方法,现在它已被删除。如果你看这个,它不在那里

您还可以在中看到:

以前不推荐使用的getMap()函数在中不再可用 谷歌播放服务SDK。(它仍然可以在谷歌网站上找到。) 播放提供给Android设备的APK服务。)getMap() 自2014年12月以来,该功能已被弃用。有关从getMap()转换为getMapAsync()的帮助,请参阅

从博客帖子:

2014年12月,我们弃用了getMap(),取而代之的是getMapAsync()。 从这个版本开始,您需要使用getMapAsync()来 编译你的应用程序

因此,只需使用getMapAsync(),它很简单

首先让您的片段实现OnMapReadyCallback接口:

public class FragmentWithMap extends android.support.v4.app.Fragment
          implements OnMapReadyCallback { 
然后,修改setupMapiFneedd()代码,并添加onMapReady()回调:

private void setUpMapIfNeeded() {
  if (mMap == null) {
    SupportMapFragment mapFrag = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.fragment_map2);
    mapFrag.getMapAsync(this);
  }
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    setUpMap();
}
用这个

compile 'com.google.android.gms:play-services-location:8.4.0'


 map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
                R.id.map)).getMap();

听起来您可能缺少google maps库,或者从中复制代码的应用程序与此应用程序之间存在版本不匹配。导入是否变灰或在IDE中显示错误?另外,第二个错误是第一个错误的直接结果:由于编译错误,编译任务失败。导入最初是灰色的,但我通过复制相关库文件并添加dependensie来处理它。感谢您对第二个错误的澄清。因此,这有助于消除该错误,谢谢!现在,请注意不可避免地出现的新错误……我认为你的答案更好。:-)谢谢你。
private void setUpMapIfNeeded() {
  if (mMap == null) {
    SupportMapFragment mapFrag = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.fragment_map2);
    mapFrag.getMapAsync(this);
  }
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    setUpMap();
}
compile 'com.google.android.gms:play-services-location:8.4.0'


 map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
                R.id.map)).getMap();