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