错误:不兼容的类型:片段不能转换为supportMapFragment



输入图像描述此处我想为我的项目添加Google Map。我正在尝试这样做,然后我有这个问题

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

<?xml version="1.0" encoding="utf-8"?>
<fragment 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"
    android:id="@+id/map"
    tools:context=".DriverMapActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment" />
 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' 

我有一些问题。尝试使用普通的framelayout,并按代码添加片段。

尝试此

step -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"
        />

步骤-2-在您的Java文件中

使用此类导入com.google.android.gms.maps.supportmapfragment;

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);

希望它对您有帮助。

最新更新