Получение ошибки «Ошибка класса инфляции фрагмента» при добавлении NavHostFragment в файл XML - PullRequest
0 голосов
/ 16 апреля 2020

Я следовал официальному руководству Android по внедрению компонента навигации в приложение. Вот полная ошибка:

Невозможно запустить действие ComponentInfo {...}: android .view.InflateException: двоичный файл XML строка файла # 31: Ошибка надувания фрагмента класса

Как решить эту проблему?

main_activity. xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize">

        <TextView
            style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/app_name" />

    </androidx.appcompat.widget.Toolbar>

    <FrameLayout
        android:id="@+id/placeholder"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <fragment
            android:id="@+id/fragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:defaultNavHost="true"
            app:navGraph="@navigation/nav_graph" />
    </FrameLayout>

</LinearLayout>

build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.rouzbehzarei.cryptotrak"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'androidx.navigation:navigation-fragment:2.2.1'
    implementation 'androidx.navigation:navigation-ui:2.2.1'
}

Полная трассировка стека:

Process: com.rouzbehzarei.cryptotrak, PID: 25623
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rouzbehzarei.cryptotrak/com.rouzbehzarei.cryptotrak.MainActivity}: android.view.InflateException: Binary XML file line #31: Error inflating class fragment
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2264)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2313)
    at android.app.ActivityThread.access$1100(ActivityThread.java:141)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5336)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.view.InflateException: Binary XML file line #31: Error inflating class fragment
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:775)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:512)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:409)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:358)
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
    at com.rouzbehzarei.cryptotrak.MainActivity.onCreate(MainActivity.java:17)
    at android.app.Activity.performCreate(Activity.java:5302)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2228)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2313) 
    at android.app.ActivityThread.access$1100(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5336) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: java.lang.IllegalStateException: no start destination defined via app:startDestination for com.rouzbehzarei.cryptotrak:id/nav_graph
    at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:61)
    at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:28)
    at androidx.navigation.NavController.navigate(NavController.java:933)
    at androidx.navigation.NavController.onGraphCreated(NavController.java:577)
    at androidx.navigation.NavController.setGraph(NavController.java:534)
    at androidx.navigation.NavController.setGraph(NavController.java:499)
    at androidx.navigation.NavController.setGraph(NavController.java:481)
    at androidx.navigation.fragment.NavHostFragment.onCreate(NavHostFragment.java:237)
    at androidx.fragment.app.Fragment.performCreate(Fragment.java:2684)
    at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:280)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1175)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
    at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:109)
    at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:135)
    at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:356)
    at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:335)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:709)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:775) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:778) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:512) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:409) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:358) 
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 
    at com.rouzbehzarei.cryptotrak.MainActivity.onCreate(MainActivity.java:17) 
    at android.app.Activity.performCreate(Activity.java:5302) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2228) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2313) 
    at android.app.ActivityThread.access$1100(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5336) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 
    at dalvik.system.NativeStart.main(Native Method) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...