java.lang.ClassCastException:android.support.v7.widget.ActivityChooserView $ InnerLayout无法强制转换为android.support.v7.widget.LinearLayoutCompat

时间:2018-03-08 13:21:09

标签: android classcastexception android-constraintlayout

从LinearLayout切换到ConstraintLayout会抛出此错误

java.lang.ClassCastException: android.support.v7.widget.ActivityChooserView$InnerLayout cannot be cast to android.support.v7.widget.LinearLayoutCompat                                                                                                                                             

当我尝试在片段中的onCreateOptionsMenu()中对菜单进行充气时发生错误。

我膨胀的菜单: -

<?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>

我的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 !!
 }

修改: - 日志的屏幕截图: -

enter image description here

更新: - 添加app:actionProviderClass="android.support.v7.widget.ShareActionProvider"项会导致错误。

根据ShaneCoder的建议,下降到27.0.2 /更改为LinearLayout会删除错误,但我想知道

  

为什么27.1.0在运行时会在运行Class android.support.v7.widget.ShareActionProvider时抛出此类错误? (这是27.1.0

中的错误

2 个答案:

答案 0 :(得分:12)

不确定这是否是你正在解决的问题...

我最近升级了支持库依赖项。使用支持库27.1.0,我通过经过验证的代码获得了此异常。我现在正在使用27.0.2。这个例外消失了。

未经测试或证实,但认为可能会有所帮助。

修改

我不确定27.1.0有什么问题。我不得不在过去备份一个小版本来解决升级到最新的支持库的问题。我想没有人是完美的。我相信27.0.227.1.0

之前的最新版本

修改2

Here's a link关于Googles Issue Tracker的问题。它已标记为2018年2月28日。应尽快发布。

编辑3

已在27.1.1

中确认已修复

答案 1 :(得分:0)

我也面临同样的问题。这是错误。 SharedActionProvider在27.1.0中抛出异常 升级到27.1.1后得到解决 希望这会有所帮助。 看看这个链接 Fixed issues in 27.1.1