[androidx.navigation库已更新至2.2.2版本发行版本问题

问题描述 投票:0回答:1

我在androidx.navigation最近更新时遇到问题

我已经注意到,如果构建为RELEASE,则在全新更新后[[(2.2.2)崩溃了错误,例如

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

activity_main.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导航组件release notes

Navigation-common-ktx ProGuard规则现在只能正确保留使用的NavArgs类,而不是所有NavArgs实例。它先前在Navigation 2.3.0-alpha03中发布。 (b / 150213558

android android-fragments kotlin android-architecture-navigation android-navigation
1个回答
0
投票
需要添加-keep class androidx.navigation.fragment.NavHostFragment

proguard-rules.pro文件中。

© www.soinside.com 2019 - 2024. All rights reserved.