Mapbox-navigation-android: Error inflating class com.mapbox.services.android.navigation.ui.v5.NavigationView

Created on 23 May 2018  路  2Comments  路  Source: mapbox/mapbox-navigation-android

Updated from 0.12.0 to 0.13.0 version and changed only minimal code:

` @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

    setTheme(R.style.Theme_AppCompat_NoActionBar);
    setContentView(R.layout.activity_navigation);
    Mapbox.getInstance(this, getString(R.string.mapbox_api_key));

    mNavigationView = findViewById(R.id.navigationView);
    mNavigationView.onCreate(savedInstanceState);
    mNavigationView.initialize(this);
}`

Logcat:

05-23 16:58:56.975 28618-28618/com.app.dev E/AndroidRuntime: FATAL EXCEPTION: main Process: com.app.dev, PID: 28618 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.dev/com.app.navigator.DirectionsNavigator}: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class com.mapbox.services.android.navigation.ui.v5.NavigationView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3255) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3351) at android.app.ActivityThread.access$1100(ActivityThread.java:222) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:7230) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) Caused by: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class com.mapbox.services.android.navigation.ui.v5.NavigationView at android.view.LayoutInflater.inflate(LayoutInflater.java:551) at android.view.LayoutInflater.inflate(LayoutInflater.java:429) at android.view.LayoutInflater.inflate(LayoutInflater.java:380) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) at com.app.navigator.DirectionsNavigator.onCreate(DirectionsNavigator.java:32) at android.app.Activity.performCreate(Activity.java:6877) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3208)

*Android API: 23
*
Mapbox Navigation SDK version: 0.13.0

Steps to trigger behavior

  1. Only open Activity and setContentView throws the exception

All 2 comments

Hey @franshua, it looks like from your code snippet you are setting your access token after inflating the NavigationView. Because the NavigationView uses a MapView and initializes it behind the scenes, this needs to be set before setContentView

I reproduced the same scenario and saw this at the end of my stacktrace:

Using MapView requires setting a valid access token. Use Mapbox.getInstance(Context context, String accessToken) to provide one. 
    Please see https://www.mapbox.com/help/create-api-access-token/ to learn how to create one.
    More information in this guide https://www.mapbox.com/help/first-steps-android-sdk/#access-tokens.
        at com.mapbox.mapboxsdk.Mapbox.validateMapbox(Mapbox.java:77)
        at com.mapbox.mapboxsdk.Mapbox.getAccessToken(Mapbox.java:67)
        at com.mapbox.services.android.navigation.ui.v5.NavigationViewModel.<init>(NavigationViewModel.java:76)

Thanks for checking out the SDK!

I have same problem and not solved by your point

Was this page helpful?
0 / 5 - 0 ratings