Java 错误:不兼容的类型:无法将片段转换为SupportMapFragment
我想为我的项目添加谷歌地图。我正在尝试这样做,然后我就有了这个问题Java 错误:不兼容的类型:无法将片段转换为SupportMapFragment,java,android,google-maps,android-fragments,Java,Android,Google Maps,Android Fragments,我想为我的项目添加谷歌地图。我正在尝试这样做,然后我就有了这个问题 public class DriverMapActivity extends FragmentActivity implements OnMapReadyCallback { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save
public class DriverMapActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_driver_map3);
// 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);
xml
试试这个
步骤1-在xml文件中
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
/>
希望对你有帮助。我在这方面遇到了一些问题。尝试使用普通的框架布局,并按代码添加片段。
1。用户地图视图代替片段
1. User MapView in place of Fragment
<com.google.android.gms.maps.MapView
android:id="@+id/provider_map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. Update your gradle files as follows
apply plugin: 'com.google.gms.google-services'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-gcm:17.0.0'
implementation 'com.google.android.gms:play-services:12.0.1'
classpath 'com.google.gms:google-services:4.3.2'
2.更新你的gradle文件如下
应用插件:“com.google.gms.googleservices”
实现'com.google.android.gms:play services地图:17.0.0'
实现'com.google.android.gms:play services gcm:17.0.0'
实现'com.google.android.gms:play services:12.0.1'
classpath'com.google.gms:googleservices:4.3.2'
显示错误日志显示堆栈跟踪。我认为这可能是您正在使用XML中的map fragment和SupportMapFragment的强制转换代码可能与@Ruwan重复-请显示您的所有代码,以便我可以看到您为SupportMapFragment导入的类,并显示XML文件代码。
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
Log.d("tag", "onMapReady");
}
});
mapFragment.getMapAsync( this);
1. User MapView in place of Fragment
<com.google.android.gms.maps.MapView
android:id="@+id/provider_map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. Update your gradle files as follows
apply plugin: 'com.google.gms.google-services'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-gcm:17.0.0'
implementation 'com.google.android.gms:play-services:12.0.1'
classpath 'com.google.gms:google-services:4.3.2'