У меня проблема с последними обновлениями androidx.navigation
Я заметил, что после fre sh update (2.2.2) аварийно завершился, если build RELEASE с ошибкой типа
Caused by: android.view.InflateException: Binary XML file line #12 in
com.somedomain.android:layout/activity_main: Binary XML file line #12 in
com.somedomain.android:layout/activity_main: Error inflating class
androidx.fragment.app.FragmentContainerView
Caused by: android.view.InflateException: Binary XML file line #12 in
com.somedomain.android:layout/activity_main: Error inflating class
androidx.fragment.app.FragmentContainerView
androidx.fragment.app.Fragment$e: Unable to instantiate fragment
androidx.navigation.fragment.NavHostFragment: make sure class name exists
Я использую:
ext.versions = [
...
nav_version : '2.2.2',
]
ext.libs = [
...
nav_fragment : "androidx.navigation:navigation-fragment-ktx:$versions.nav_version",
nav_ui : "androidx.navigation:navigation-ui-ktx:$versions.nav_version",
]
В приложении gradle
...
buildTypes {
debug {
manifestPlaceholders = [crashlyticsCollectionEnabled: "false"]
ext.enableCrashlytics = false
signingConfig signingConfigs.debug
debuggable = true
}
release {
manifestPlaceholders = [crashlyticsCollectionEnabled: "true"]
ext.enableCrashlytics = true
minifyEnabled true
shrinkResources true
debuggable = false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
...
implementation libs.nav_fragment
implementation libs.nav_ui
Хост навигации в деятельности_основной. xml
<?xml version="1.0" encoding="utf-8"?>
<layout 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"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/main_nav_host"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/main_navigation" />
</FrameLayout>
</layout>
Язык: Kotlin
Кто-нибудь сталкивался с такой проблемой?
Примечание: С версией 2.2.1 все было в порядке. Отладочная версия сборки в порядке
Мне кажется, проблема связана с этим изменением. в соответствии с официальными Android компонентами nav примечаниями к выпуску
Правила ProGuard navigation-common-ktx теперь корректно сохраняют только используемые классы NavArgs, а не все экземпляры NavArgs. Ранее это было выпущено в Navigation 2.3.0-alpha03. (Б / 150213558