Android在'上崩溃;boolean com.mapbox.mapboxsdk.maps.Style.isFullyLoaded()';在空对象引用上,
嗨,我正在尝试MapBox导航,并且像这样崩溃Android在'上崩溃;boolean com.mapbox.mapboxsdk.maps.Style.isFullyLoaded()';在空对象引用上,,android,maps,mapbox,mapbox-android,Android,Maps,Mapbox,Mapbox Android,嗨,我正在尝试MapBox导航,并且像这样崩溃 2019-01-20 19:00:16.331 32005-32005/com.example.mapboxtest E/Mbgl-MapChangeReceiver: Exception in onDidFinishLoadingStyle android.content.res.Resources$NotFoundException: Resource ID #0xffffffff at android.content.res.Reso
2019-01-20 19:00:16.331 32005-32005/com.example.mapboxtest E/Mbgl-MapChangeReceiver: Exception in onDidFinishLoadingStyle
android.content.res.Resources$NotFoundException: Resource ID #0xffffffff
at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:225)
at android.content.res.Resources.getDrawableForDensity(Resources.java:887)
at android.content.res.Resources.getDrawable(Resources.java:827)
at android.content.Context.getDrawable(Context.java:626)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:463)
at com.mapbox.mapboxsdk.location.Utils.getDrawable(Utils.java:75)
at com.mapbox.mapboxsdk.location.LayerBitmapProvider.generateBitmap(LayerBitmapProvider.java:26)
at com.mapbox.mapboxsdk.location.LocationLayerController.styleForeground(LocationLayerController.java:303)
at com.mapbox.mapboxsdk.location.LocationLayerController.applyStyle(LocationLayerController.java:109)
at com.mapbox.mapboxsdk.location.LocationLayerController.initializeComponents(LocationLayerController.java:92)
at com.mapbox.mapboxsdk.location.LocationLayerController.<init>(LocationLayerController.java:84)
at com.mapbox.mapboxsdk.location.LocationComponent.initialize(LocationComponent.java:991)
at com.mapbox.mapboxsdk.location.LocationComponent.activateLocationComponent(LocationComponent.java:292)
at com.mapbox.services.android.navigation.ui.v5.map.NavigationMapboxMap.initializeLocationComponent(NavigationMapboxMap.java:549)
at com.mapbox.services.android.navigation.ui.v5.map.NavigationMapboxMap.<init>(NavigationMapboxMap.java:80)
at com.example.mapboxtest.MainActivity$1.onStyleLoaded(MainActivity.java:45)
at com.mapbox.mapboxsdk.maps.MapboxMap.notifyStyleLoaded(MapboxMap.java:835)
at com.mapbox.mapboxsdk.maps.MapboxMap.onFinishLoadingStyle(MapboxMap.java:202)
at com.mapbox.mapboxsdk.maps.MapView$MapCallback.onDidFinishLoadingStyle(MapView.java:1164)
at com.mapbox.mapboxsdk.maps.MapChangeReceiver.onDidFinishLoadingStyle(MapChangeReceiver.java:194)
at com.mapbox.mapboxsdk.maps.NativeMapView.onDidFinishLoadingStyle(NativeMapView.java:979)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:160)
at android.app.ActivityThread.main(ActivityThread.java:6892)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
这就是我撞车的地方
@Override
public void onMapReady(@NonNull MapboxMap mapboxMap) {
mMapboxMap = mapboxMap;
mapboxMap.setStyle(new Style.Builder().fromUrl(getString(R.string.navigation_guidance)), new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
// enableLocationComponent();
if (style.isFullyLoaded()) {
navigationMap = new NavigationMapboxMap(mapView, mMapboxMap);
//
// // For Location updates
// initializeLocationEngine();
//
// // For navigation logic / processing
// initializeNavigation(mMapboxMap);
navigationMap.updateCameraTrackingMode(NavigationCamera.NAVIGATION_TRACKING_MODE_NONE);
}
}
});
}
这条线导致了问题
navigationMap=新的NavigationMapboxMap(mapView,mMapboxMap)
我检查了这个链接
发现了这样的东西
2019-01-20 19:00:16.331 32005-32005/com.example.mapboxtest E/Mbgl-MapChangeReceiver: Exception in onDidFinishLoadingStyle
android.content.res.Resources$NotFoundException: Resource ID #0xffffffff
at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:225)
at android.content.res.Resources.getDrawableForDensity(Resources.java:887)
at android.content.res.Resources.getDrawable(Resources.java:827)
at android.content.Context.getDrawable(Context.java:626)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:463)
at com.mapbox.mapboxsdk.location.Utils.getDrawable(Utils.java:75)
at com.mapbox.mapboxsdk.location.LayerBitmapProvider.generateBitmap(LayerBitmapProvider.java:26)
at com.mapbox.mapboxsdk.location.LocationLayerController.styleForeground(LocationLayerController.java:303)
at com.mapbox.mapboxsdk.location.LocationLayerController.applyStyle(LocationLayerController.java:109)
at com.mapbox.mapboxsdk.location.LocationLayerController.initializeComponents(LocationLayerController.java:92)
at com.mapbox.mapboxsdk.location.LocationLayerController.<init>(LocationLayerController.java:84)
at com.mapbox.mapboxsdk.location.LocationComponent.initialize(LocationComponent.java:991)
at com.mapbox.mapboxsdk.location.LocationComponent.activateLocationComponent(LocationComponent.java:292)
at com.mapbox.services.android.navigation.ui.v5.map.NavigationMapboxMap.initializeLocationComponent(NavigationMapboxMap.java:549)
at com.mapbox.services.android.navigation.ui.v5.map.NavigationMapboxMap.<init>(NavigationMapboxMap.java:80)
at com.example.mapboxtest.MainActivity$1.onStyleLoaded(MainActivity.java:45)
at com.mapbox.mapboxsdk.maps.MapboxMap.notifyStyleLoaded(MapboxMap.java:835)
at com.mapbox.mapboxsdk.maps.MapboxMap.onFinishLoadingStyle(MapboxMap.java:202)
at com.mapbox.mapboxsdk.maps.MapView$MapCallback.onDidFinishLoadingStyle(MapView.java:1164)
at com.mapbox.mapboxsdk.maps.MapChangeReceiver.onDidFinishLoadingStyle(MapChangeReceiver.java:194)
at com.mapbox.mapboxsdk.maps.NativeMapView.onDidFinishLoadingStyle(NativeMapView.java:979)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:160)
at android.app.ActivityThread.main(ActivityThread.java:6892)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
为了避免java.lang.NullPointerException:尝试调用
虚拟方法的布尔
null对象上的com.mapbox.mapboxsdk.maps.Style.isFullyLoaded()
引用中提供的样式参数
LocationComponent#activate方法必须为@NonNull且已完全加载。
最好的方法是传递OnStyleLoaded中提供的样式
回拨
但还是没有运气 正在通过在找不到有效样式时提供默认值来解决此问题。同时,您可以将此代码段添加到style.xml
中以修复:
@style/NavigationLocationLayerStyle
我也面临同样的问题,并尝试了所有的解决方案。我已经更新到了最新的mapbox sdk 8.4.0,并且已经开始关注ComponentNavigationActivity,但仍然没有成功
然后我发现我们需要:
<item name="navigationViewLocationLayerStyle">@style/NavigationLocationLayerStyle</item>
这就解决了问题。我希望有帮助 您已经从测试应用程序中检查了[
组件导航活动][1]了吗?看起来您正在使用一个类似的设置,尽管它在这里没有崩溃。您是否可以添加一些有关复制崩溃的更多信息或有关设置的任何其他细节?这真的很有帮助,因为没有额外的信息,我无法复制。[1]:
setTheme(R.style.customInstructionView);