java.lang.ClassCastException:com.here.android.mpa.mapping.MapView无法强制转换为com.here.android.mpa.mapping.AndroidXMapFragment

java.lang.ClassCastException:com.here.android.mpa.mapping.MapView无法强制转换为com.here.android.mpa.mapping.AndroidXMapFragment,android,xml,google-maps,kotlin,android-mapview,Android,Xml,Google Maps,Kotlin,Android Mapview,嗨,我正在使用android的SDK,我一直收到这个错误 我的项目有一个导航抽屉,我正试图用hereSDK在其中一个片段中创建一个地图 下面是我的XML和Kotlin代码以及错误 我的错误: java.lang.ClassCastException:com.here.android.mpa.mapping.MapView无法强制转换为com.here.android.mpa.mapping.AndroidXMapFragment 在com.example.pplin_mobilite.ui.Pa

嗨,我正在使用android的SDK,我一直收到这个错误 我的项目有一个导航抽屉,我正试图用hereSDK在其中一个片段中创建一个地图 下面是我的XML和Kotlin代码以及错误 我的错误:

java.lang.ClassCastException:com.here.android.mpa.mapping.MapView无法强制转换为com.here.android.mpa.mapping.AndroidXMapFragment
在com.example.pplin_mobilite.ui.Passager.passagefragment.onActivityCreated上(passagefragment.kt:22)
位于androidx.fragment.app.fragment.performActivityCreated(fragment.java:2717)
位于androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346)
位于androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1188)
位于androidx.fragment.app.FragmentManager.AddAddAddedFragments(FragmentManager.java:2224)
在androidx.fragment.app.FragmentManager.ExecutePostGether(FragmentManager.java:1997)
在androidx.fragment.app.FragmentManager.RemovedAndTopOperationsAndExecute(FragmentManager.java:1953)
位于androidx.fragment.app.FragmentManager.ExecutPendingActions(FragmentManager.java:1849)
位于androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
位于android.os.Handler.handleCallback(Handler.java:873)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:193)
位于android.app.ActivityThread.main(ActivityThread.java:6758)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912)

我的科特林班级:

class PassagerFragment : Fragment() {

override fun onActivityCreated(savedInstanceState: Bundle?) {
    super.onActivityCreated(savedInstanceState)

    // Search for the Map Fragment
    val mapFragment = map_frag as AndroidXMapFragment
    // initialize the Map Fragment and
    // retrieve the map that is associated to the fragment
    mapFragment.init { error ->
        if (error == OnEngineInitListener.Error.NONE) {
            // now the map is ready to be used
            mapFragment.map
            // ...
        } else {
            println("ERROR: Cannot initialize AndroidXMapFragment")
        }
    }
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    return inflater.inflate(R.layout.fragment_notifications,container,false)
}
}

和我的xml:

 <fragment
    class="com.here.android.mpa.mapping.AndroidXMapFragment"
    android:id="@+id/map_frag"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"

    />

如果您使用的是此处文档中的片段,看起来像是这样,并将其放入另一个片段中,则应使用:

val mapfragment = childFragmentManager.findFragmentById(R.id.mapfragment) as AndroidXMapFragment

然后找到片段而不是视图(因为它不是视图),因为如果您检查
mapfragment
,它已经扩展了fragment()

如果您使用的是此处文档中的片段,就像您所看到的那样,并将其放在另一个片段中,您应该使用:

val mapfragment = childFragmentManager.findFragmentById(R.id.mapfragment) as AndroidXMapFragment

然后找到片段而不是视图(因为它不是视图),因为如果检查
mapfragment
,它已经扩展了fragment()

请尝试使用supportFragmentManager:

val mapfragment = supportFragmentManager.findFragmentById(R.id.map_frag) as AndroidXMapFragment?

尝试使用supportFragmentManager:

val mapfragment = supportFragmentManager.findFragmentById(R.id.map_frag) as AndroidXMapFragment?

您是否仔细检查以确保
map\u frag
引用了上面显示的正确的XML布局?是的,现在甚至更改了它,它仍然是一样的,起初我在xml中使用MapView,出现了这个错误,但后来我将其更改为fragment,我仍然有相同的错误…您是否仔细检查以确保
map\u frag
引用了上面显示的正确的xml布局?是的,现在甚至更改了它,它仍然是一样的,我一开始在xml中使用MapView,得到了这个错误,但后来我将它改为fragment,我仍然有相同的错误。。。