java.lang.ClassCastException: android.support.v7.widget.ActivityChooserView$InnerLayout 无法转换为 android.support.v7.widget.LinearLayoutCompat
java.lang.ClassCastException: android.support.v7.widget.ActivityChooserView$InnerLayout cannot be cast to android.support.v7.widget.LinearLayoutCompat
从 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 !!
}
编辑 :- 日志截图:-
Update :- 添加 app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
项会导致错误。
根据 ShaneCoder 的建议下降到 27.0.2
/更改为 LinearLayout
删除了错误,但我想知道
Why is 27.1.0
is throwing such error at runtime while inflating Class,android.support.v7.widget.ShareActionProvider
? (is it a bug in 27.1.0
)
不确定这是否是您要解决的问题...
我最近升级了我的支持库依赖项。借助支持库 27.1.0
,我得到了经过验证的代码的异常。我现在正在使用 27.0.2
。这个异常消失了。
未经测试或证明,但认为它可能有所帮助。
编辑
我不确定 27.1.0
出了什么问题。过去我不得不备份一个次要版本以解决升级到最新支持库的问题。我想没有人是完美的。我相信 27.0.2
是 27.1.0
之前的最新版本
编辑 2
Here's a link 到 Google 问题跟踪器上的问题。它已标记为已于 2018 年 2 月 28 日修复。应该会很快发布。
编辑 3
已确认在 27.1.1
中修复
我也遇到了同样的问题。这是错误。 SharedActionProvider 在 27.1.0 中抛出异常
升级到27.1.1后解决
希望这会有所帮助。
看看这个 link
Fixed issues in 27.1.1
从 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 !!
}
编辑 :- 日志截图:-
Update :- 添加 app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
项会导致错误。
根据 ShaneCoder 的建议下降到 27.0.2
/更改为 LinearLayout
删除了错误,但我想知道
Why is
27.1.0
is throwing such error at runtime while inflating Class,android.support.v7.widget.ShareActionProvider
? (is it a bug in27.1.0
)
不确定这是否是您要解决的问题...
我最近升级了我的支持库依赖项。借助支持库 27.1.0
,我得到了经过验证的代码的异常。我现在正在使用 27.0.2
。这个异常消失了。
未经测试或证明,但认为它可能有所帮助。
编辑
我不确定 27.1.0
出了什么问题。过去我不得不备份一个次要版本以解决升级到最新支持库的问题。我想没有人是完美的。我相信 27.0.2
是 27.1.0
编辑 2
Here's a link 到 Google 问题跟踪器上的问题。它已标记为已于 2018 年 2 月 28 日修复。应该会很快发布。
编辑 3
已确认在 27.1.1
我也遇到了同样的问题。这是错误。 SharedActionProvider 在 27.1.0 中抛出异常 升级到27.1.1后解决 希望这会有所帮助。 看看这个 link Fixed issues in 27.1.1