Android-ActionbarSherlock意外崩溃
我得到一个例外:Android-ActionbarSherlock意外崩溃,android,actionbarsherlock,android-actionbar,Android,Actionbarsherlock,Android Actionbar,我得到一个例外: java.lang.ClassCastException: android.widget.ShareActionProvider cannot be cast to com.actionbarsherlock.view.ActionProvider at com.actionbarsherlock.view.MenuInflater$MenuState.readItem(MenuInflater.java:389) at com.actionba
java.lang.ClassCastException: android.widget.ShareActionProvider cannot be cast to com.actionbarsherlock.view.ActionProvider
at com.actionbarsherlock.view.MenuInflater$MenuState.readItem(MenuInflater.java:389)
at com.actionbarsherlock.view.MenuInflater.parseMenu(MenuInflater.java:162)
at com.actionbarsherlock.view.MenuInflater.inflate(MenuInflater.java:112)
at com.marketing.MainActivity.onCreateOptionsMenu(MainActivity.java:880)
at com.actionbarsherlock.app.SherlockActivity.onCreatePanelMenu(SherlockActivity.java:184)
at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:559)
at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:65)
at com.actionbarsherlock.app.SherlockActivity.onCreateOptionsMenu(SherlockActivity.java:149)
at android.app.Activity.onCreatePanelMenu(Activity.java:2444)
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:388)
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:739)
at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:2833)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
关于此方法:
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
在这一行:
inflater.inflate(R.menu.main_menu, menu);
这是我的主菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item_share"
android:showAsAction="ifRoom"
android:title="Share"
android:actionProviderClass="android.widget.ShareActionProvider" />
</menu>
我想做的是让ListNavigation和ActionbarShare都出现在导航栏上。有人知道如何修复这起车祸吗
谢谢,
AlexActionBarSherlock的MenuInflater需要一个
com.ActionBarSherlock.view.ActionProvider。
您的actionProviderClass是一个android.widget.ShareActionProvider
,它显然没有扩展ActionBarSherlock的ActionProvider。因此,ClassCastException
ActionBarSherlock附带了一些示例,其中一些示例展示了ActionProviders的使用。签出文件夹
ActionBarSherlock\ActionBarSherlock samples\demos\res\menu
获取菜单xml文件和
ActionBarSherlock\ActionBarSherlock samples\demos\src\com\ActionBarSherlock\sample\demos
有关消息来源
(ShareActionProviders.java和ActionProviders.java)
谢谢。我确实使用了这些示例,并且只使用了ListNavigation。但是我很难在菜单上添加两个元素:共享小部件和ListNavigation我刚刚去掉了ShareActionProvider的导入,但奇怪的是它被编译了。我希望它会给出一个语法错误。如果你描述一下你遇到的“主要困难”的性质,我也许能帮上忙。我正在使用ActionBarSherlock并使用几乎所有的功能,包括自定义列表导航、操作提供程序等。谢谢。你的建议解决了问题!