升级到androidX后崩溃

Crash after upgrade to androidX

我正在使用 BottomNavigationViewEx 库,并且我在我的项目中升级了 androidX。

BottomNavigationViewEx navigation = findViewById(R.id.navigation);
Logger.d(TAG, "navigation == null " + (navigation == null));

if (navigation != null) {
    navigation.setCurrentItem(2); // Line 170: This make crash
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

    navigation.setTextVisibility(false);

    navigation.enableAnimation(false);
    navigation.enableShiftingMode(false);
    navigation.enableItemShiftingMode(false);

    int iconSize = 36;
    navigation.setItemHeight(BottomNavigationViewEx.dp2px(this, iconSize + 16));
    navigation.setIconSize(iconSize, iconSize);
}

它生成以下错误日志,然后崩溃。
我该如何解决这个问题?

java.lang.NoSuchFieldException: No field mMenuView in class Lcom/google/android/material/bottomnavigation/BottomNavigationView; (declaration of 'com.google.android.material.bottomnavigation.BottomNavigationView' appears in /data/app/com.calm_health.research-2/base.apk) at java.lang.Class.getDeclaredField(Native Method) at com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx.getField(BottomNavigationViewEx.java:802) at com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx.getBottomNavigationMenuView(BottomNavigationViewEx.java:552) at com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx.setCurrentItem(BottomNavigationViewEx.java:511) at sports.calm_health.com.researcher.MainActivity.onCreate(MainActivity.java:170)

将以下代码放入 gradle.properties 个文件中。

android.useAndroidX=true android.enableJetifier=true

这个library没有更新,使用旧的classandroid.support.design.widget.BottomNavigationView[=22=的反射 ].

表示库正在寻找旧支持设计库提供的class中的私有字段和方法。使用 material 组件库(androidx 需要它),这些字段和方法可能会有所不同,或者将来可能会发生变化。
正如您可以检查错误,库正在寻找 mMenuView 中不存在的 BottomNavigationView.

java.lang.NoSuchFieldException: No field mMenuView in class Lcom/google/android/material/bottomnavigation/BottomNavigationView; (declaration of 'com.google.android.material.bottomnavigation.BottomNavigationView' appears in /data/app/com.calm_health.research-2/base.apk) at java.lang.Class.getDeclaredField(Native Method) at

https://github.com/ittianyu/BottomNavigationViewEx/issues/126

@Giddy Naya 说,这就是我的回答