2014-10-27 55 views
3

我正在开发一个应用程序,我使用ActionModeICS上的支持库v21不支持ActionMode?

项目依赖:

dependencies { 
    compile 'com.android.support:appcompat-v7:21.0.+' 
    compile 'com.android.support:cardview-v7:21.0.+' 
    compile 'com.android.support:support-v13:21.0+' 
} 

API级别:

minSdkVersion 14 
targetSdkVersion 21 

我的片段使用ActionMode

@Override 
public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
    mode.getMenuInflater().inflate(R.menu.packing_list_context, menu); 
    return true; 
} 
... 

菜单:

<?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/context_menu_item_edit" 
     android:icon="@drawable/ic_edit_black_24dp" 
     app:showAsAction="always" 
     android:title="@string/context_menu_item_edit" /> 

    <item 
     android:id="@+id/context_menu_item_delete" 
     android:icon="@drawable/ic_delete_black_24dp" 
     app:showAsAction="always" 
     android:title="@string/context_menu_item_delete" /> 

    <item 
     android:id="@+id/context_menu_item_tags" 
     android:icon="@drawable/ic_label_black_24dp" 
     app:showAsAction="always" 
     android:title="@string/context_menu_item_tags" /> 
</menu> 

当我在Android 4.4上运行这个应用程序时,一切都很好。但是,当我在Android 4.0.3运行它,我某处收到下面的异常在支持库:

堆栈跟踪:

W/System.err(7292): java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.getActionProvider() 
W/System.err(7292): at android.support.v7.internal.view.menu.MenuItemImpl.getActionProvider(MenuItemImpl.java:634) 
W/System.err(7292): at android.support.v7.internal.view.menu.MenuItemWrapperICS.getSupportActionProvider(MenuItemWrapperICS.java:322) 
W/System.err(7292): at android.support.v7.internal.view.menu.MenuItemWrapperICS.checkActionProviderOverrideVisibility(MenuItemWrapperICS.java:348) 
W/System.err(7292): at android.support.v7.internal.view.menu.MenuItemWrapperICS.setVisible(MenuItemWrapperICS.java:183) 
W/System.err(7292): at android.support.v7.internal.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:425) 
W/System.err(7292): at android.support.v7.internal.view.SupportMenuInflater$MenuState.addItem(SupportMenuInflater.java:479) 
W/System.err(7292): at android.support.v7.internal.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:196) 
W/System.err(7292): at android.support.v7.internal.view.SupportMenuInflater.inflate(SupportMenuInflater.java:118) 
W/System.err(7292): at net.cornplay.tourist.fragments.PackingListFragment.onCreateActionMode(PackingListFragment.java:392) 
W/System.err(7292): at android.widget.AbsListView$MultiChoiceModeWrapper.onCreateActionMode(AbsListView.java:5635) 
W/System.err(7292): at android.support.v7.internal.view.SupportActionModeWrapper$CallbackWrapper.onCreateActionMode(SupportActionModeWrapper.java:151) 
W/System.err(7292): at android.support.v7.app.ActionBarActivityDelegateBase$ActionModeCallbackWrapper.onCreateActionMode(ActionBarActivityDelegateBase.java:1367) 
W/System.err(7292): at android.support.v7.internal.app.WindowDecorActionBar$ActionModeImpl.dispatchOnCreate(WindowDecorActionBar.java:1012) 
W/System.err(7292): at android.support.v7.internal.app.WindowDecorActionBar.startActionMode(WindowDecorActionBar.java:510) 
W/System.err(7292): at android.support.v7.app.ActionBarActivityDelegateBase.startSupportActionMode(ActionBarActivityDelegateBase.java:576) 
W/System.err(7292): at android.support.v7.app.ActionBarActivityDelegateHC.startActionModeForChild(ActionBarActivityDelegateHC.java:62) 
W/System.err(7292): at android.support.v7.internal.widget.NativeActionModeAwareLayout.startActionModeForChild(NativeActionModeAwareLayout.java:44) 
W/System.err(7292): at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571) 
W/System.err(7292): at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571) 
W/System.err(7292): at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571) 
W/System.err(7292): at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571) 
W/System.err(7292): at android.view.View.startActionMode(View.java:3607) 
W/System.err(7292): at android.widget.AbsListView.setItemChecked(AbsListView.java:952) 
W/System.err(7292): at net.cornplay.tourist.fragments.PackingListFragment.onItemLongClick(PackingListFragment.java:350) 
W/System.err(7292): at net.cornplay.tourist.adapters.PackingListAdapter$2.onLongClick(PackingListAdapter.java:87) 
W/System.err(7292): at android.view.View.performLongClick(View.java:3547) 
W/System.err(7292): at android.view.View$CheckForLongPress.run(View.java:14088) 
W/System.err(7292): at android.os.Handler.handleCallback(Handler.java:605) 
W/System.err(7292): at android.os.Handler.dispatchMessage(Handler.java:92) 
W/System.err(7292): at android.os.Looper.loop(Looper.java:137) 
W/System.err(7292): at android.app.ActivityThread.main(ActivityThread.java:4424) 
W/System.err(7292): at java.lang.reflect.Method.invokeNative(Native Method) 
W/System.err(7292): at java.lang.reflect.Method.invoke(Method.java:511) 
W/System.err(7292): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
W/System.err(7292): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
W/System.err(7292): at dalvik.system.NativeStart.main(Native Method) 

谷歌暗示这些问题:https://code.google.com/p/android/issues/detail?id=77724https://code.google.com/p/android/issues/detail?id=78212。但是他们怎么可能与我的代码相关?我不使用ShareActionProvider

任何想法?

+0

我在Android L Preview跟踪器上发现了类似的问题:https://code.google.com/p/android-developer-preview/issues/detail?id=1660。 – 2014-10-27 19:26:11

+0

嘿,我得到了一个非常类似我的应用程序的崩溃报告。你解决了这个问题吗?你可以在你的4.0.x设备上试用它来验证它是同一个问题吗?以下是我的应用:https://play.google.com/store/apps/details?id = com.lb.app_manager。为了激活操作模式,可以长按一个项目或单击一个图标。事情是,我不使用getActionProvider或者甚至是一个ShareActionProvider。我只是使用“startSupportActionMode”... – 2014-11-29 15:58:43

+1

@androiddeveloper我在4.0.3上检查了你的应用程序 - 它不会崩溃。 – 2014-12-04 15:30:15

回答

1

实际上,这是AppCompat库中的一个错误。它已在v21.0.2中修复。刚刚升级,应用程序不再崩溃。

+1

您好我在哪里可以找到新的appcompat版本,我已更新android sdk并使用新的,但我无法解决该错误 – 2014-12-29 13:12:11