0
votes

Crash après la mise à niveau vers Androidx

J'utilise BottomNavigationViewex bibliothèque et j'ai mis à niveau Androidx dans mon projet.

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);
}


7 commentaires

Qu'est-il arrivé à MainActivity.java: Ligne 170?


Je ne pense pas que ce soit arrivé après la mise à niveau vers androidx . J'ai fait face à cette façon avant cela. Et je suppose que cela a quelque chose à voir avec ce navigation.EnableditemShiftingMode (faux); ?


Suivez le problème sur GitHub. Voir le dernier commentaire .


Avez-vous lu cette ligne à partir de la nouvelle version DOC "AndroidX Utilisez une nouvelle version et ajoutez de la configuration dans Gradle.Properties"?


Avez-vous ajouté des bibliothèques Maven et Jetpack?


Recherche pour android.support.design.widget.bottomnavigationview dans votre projet et remplacez-le avec Androidx Afficher.


@Giddy Naya a déclaré: Github.com/ittianyu/bottomnavigationViewEx/issues/126 m'aide , c'est une réponse correcte. Je veux accepter ce commentaire comme une réponse


3 Réponses :


-1
votes

mettre ci-dessous code dans gradle.properties fichiers.

android.useandroidx = true android.EnableJetier = true


3 commentaires

Je pense que vous n'avez pas lu la question clairement, Androidx est déjà activé dans son projet.


@Shivamyadav Androidx peut être activé même sans permettre le reprise


Ensuite, vous devriez mentionner seulement cette ligne Android.EnableJetier = true.



0
votes

Ce La bibliothèque n'est pas mise à jour et utilise la réflexion avec l'ancien Classe android.support.design.widget.bottomnavigationview .

Cela signifie que la bibliothèque recherche des champs privés et des méthodes de la classe fournies par l'ancienne bibliothèque de conception de support. Avec la bibliothèque de composants matériels (il est requis par Androidx), ces champs et méthodes pourraient être différents ou pourraient changer à l'avenir.
Comme vous pouvez vérifier l'erreur, la bibliothèque recherche un mmenuView qui n'est pas présent dans BottomNavigationView .

java.lang.nosuchfieldException: pas de champ mmenuView en classe LCC / Google / Android / Matériel / BottomNavigation / BottomNavigationView; (Déclaration de 'com.google.android.material.bottomnavigation.bottomnavigationvoirview' apparaît dans /data/app/com.calm_health.research-/base.apk) sur java.lang.class.getDeclaredfield (méthode natif) à


0 commentaires

0
votes

0 commentaires