从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 !!
}
修改: - 日志的屏幕截图: -
更新: - 添加app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
项会导致错误。
根据ShaneCoder的建议,下降到27.0.2
/更改为LinearLayout
会删除错误,但我想知道
为什么
中的错误27.1.0
在运行时会在运行Classandroid.support.v7.widget.ShareActionProvider
时抛出此类错误? (这是27.1.0
)
答案 0 :(得分:12)
不确定这是否是你正在解决的问题...
我最近升级了支持库依赖项。使用支持库27.1.0
,我通过经过验证的代码获得了此异常。我现在正在使用27.0.2
。这个例外消失了。
未经测试或证实,但认为可能会有所帮助。
修改强>
我不确定27.1.0
有什么问题。我不得不在过去备份一个小版本来解决升级到最新的支持库的问题。我想没有人是完美的。我相信27.0.2
是27.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