web-dev-qa-db-fra.com

java.lang.ClassCastException: Android.support.v7.widget.ActivityChooserView $ InnerLayout ne peut pas être converti en Android.support.v7.widget.LinearLayoutCompat

Passage de LinearLayout à ConstraintLayout en lançant cette erreur

Java.lang.ClassCastException: Android.support.v7.widget.ActivityChooserView$InnerLayout cannot be cast to Android.support.v7.widget.LinearLayoutCompat                                                                                                                                             

L'erreur se produit lorsque j'essaie de gonfler le menu dans onCreateOptionsMenu() dans mon fragment.

Mon menu que je gonfle: -

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto">   
    <item
        Android:id="@+id/action_share"
        app:showAsAction="always"
        Android:orderInCategory="101"
        Android:icon="@Android:drawable/ic_menu_share"
        Android:title="@string/action_share"
        app:actionProviderClass="Android.support.v7.widget.ShareActionProvider"
        />
</menu>

Ma onCreateOptionsMenu(..) 

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    inflater.inflate(R.menu.customerdetail, menu);      
    MenuItem menuItem = menu.findItem(R.id.action_share);
    mShareActionProvider = (ShareActionProvider) 
    MenuItemCompat.getActionProvider(menuItem);         
 // If i comment out this whole part everything is fine !!
 }

Edit: - Capture d'écran du journal: -

 enter image description here

Update: - L'ajout de l'élément app:actionProviderClass="Android.support.v7.widget.ShareActionProvider" provoque l'erreur. 

Comme suggéré par ShaneCoder, descendre à 27.0.2/changer à LinearLayout supprime l'erreur mais je veux savoir 

Pourquoi 27.1.0 génère-t-il une telle erreur au moment de l'exécution tout en gonflant Class, Android.support.v7.widget.ShareActionProvider? (est-ce un bug dans 27.1.0)

9
Santanu Sur

Vous ne savez pas si c'est le problème que vous combattez ...

J'ai récemment mis à niveau mes dépendances de la bibliothèque de support. Avec les bibliothèques de support 27.1.0, je recevais cette exception avec un code éprouvé. J'utilise 27.0.2 maintenant. Cette exception est partie. 

Non testé ou prouvé, mais pensé que cela pourrait aider.

Modifier

Je ne sais pas ce qui ne va pas avec 27.1.0. Dans le passé, j'ai déjà dû sauvegarder une version mineure pour résoudre le problème de la mise à niveau vers les dernières bibliothèques de support. Je suppose que personne n'est parfait. Je crois que 27.0.2 est la dernière version antérieure à 27.1.0 

Edit 2

Voici un lien à la question sur Googles Issue Tracker. Il est marqué fixé le 28 février 2018. Devrait être publié bientôt.

Edit 3

Confirmé corrigé dans 27.1.1

12
ShaneCoder

J'ai également fait face au même problème. C'est un bug. SharedActionProvider lève une exception dans 27.1.0 Il a été résolu après la mise à niveau vers 27.1.1 Nous espérons que cela aidera . Consultez ce lien Correction de problèmes dans 27.1.1

0
Sadashiv