java.lang.ClassCastException:com.here.android.mpa.mapping.MapView无法强制转换为com.here.android.mpa.mapping.AndroidXMapFragment
嗨,我正在使用android的SDK,我一直收到这个错误 我的项目有一个导航抽屉,我正试图用hereSDK在其中一个片段中创建一个地图 下面是我的XML和Kotlin代码以及错误 我的错误: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
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,我仍然有相同的错误。。。