UnsupportedOperationException en Android 3.2 al seleccionar texto (AppCompat 21.0.3)

Me estoy preparando para lanzar mi aplicación después de actualizar a AppCompat 21.0.3. Mientras probaba en varios emuladores, encontré que hay un bloqueo en Android 3.2 en cualquier momento que intento seleccionar texto dentro de mi WebView.

Esto no parece suceder en el emulador 2.3.3 o 4.0.3 (en 2.3.3 se selecciona el texto, y me permite tocar a copiar.En 4.0.3 muestra el modo de acción, que es también lo que esperaba en 3.2). ¿Alguien ha encontrado algo similar? ¿Hay alguna corrección, o tenemos que esperar a una actualización de AppCompat?

E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.UnsupportedOperationException at android.support.v7.internal.view.menu.MenuWrapperFactory.wrapSupportMenu(MenuWrapperFactory.java:39) at android.support.v7.internal.view.SupportActionModeWrapper$CallbackWrapper.getMenuWrapper(SupportActionModeWrapper.java:179) at android.support.v7.internal.view.SupportActionModeWrapper$CallbackWrapper.onCreateActionMode(SupportActionModeWrapper.java:154) at android.support.v7.app.ActionBarActivityDelegateBase$ActionModeCallbackWrapper.onCreateActionMode(ActionBarActivityDelegateBase.java:1297) at android.support.v7.app.ActionBarActivityDelegateBase.startSupportActionModeFromWindow(ActionBarActivityDelegateBase.java:648) at android.support.v7.app.ActionBarActivityDelegate$1.startActionMode(ActionBarActivityDelegate.java:99) at android.support.v7.widget.WindowCallbackWrapper.startActionMode(WindowCallbackWrapper.java:69) at android.support.v7.internal.app.ToolbarActionBar.startActionMode(ToolbarActionBar.java:206) at android.support.v7.app.ActionBarActivityDelegateBase.startSupportActionMode(ActionBarActivityDelegateBase.java:581) at android.support.v7.app.ActionBarActivityDelegateHC.startActionModeForChild(ActionBarActivityDelegateHC.java:62) at android.support.v7.internal.widget.NativeActionModeAwareLayout.startActionModeForChild(NativeActionModeAwareLayout.java:44) at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:553) at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:553) at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:553) at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:553) at android.view.View.startActionMode(View.java:3157) at android.webkit.WebView.setUpSelect(WebView.java:4935) at android.webkit.WebView.selectText(WebView.java:3957) at android.webkit.WebView.selectText(WebView.java:3950) at android.webkit.WebView.performLongClick(WebView.java:3939) at android.webkit.WebView$PrivateHandler.handleMessage(WebView.java:7752) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:132) at android.app.ActivityThread.main(ActivityThread.java:4123) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:491) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) 

Lo mismo sucede cuando intento seleccionar texto en el SearchView de la barra de herramientas.

 E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.UnsupportedOperationException at android.support.v7.internal.view.menu.MenuWrapperFactory.wrapSupportMenu(MenuWrapperFactory.java:39) at android.support.v7.internal.view.SupportActionModeWrapper$CallbackWrapper.getMenuWrapper(SupportActionModeWrapper.java:179) at android.support.v7.internal.view.SupportActionModeWrapper$CallbackWrapper.onCreateActionMode(SupportActionModeWrapper.java:154) ... at android.view.View.startActionMode(View.java:3157) at android.widget.TextView.startSelectionActionMode(TextView.java:8306) at android.widget.TextView.performLongClick(TextView.java:8206) at android.view.View$CheckForLongPress.run(View.java:11910) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:132) at android.app.ActivityThread.main(ActivityThread.java:4123) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:491) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) 

Edit: Aún está sucediendo en AppCompat v22. Mi solución actual es simplemente desactivar la selección de texto para aquellos que se efectúan, así:

 // There is a bug in Android 3.0-3.2 that causes selecting text to crash. // Temporary fix is to disable long-click/text-selection for API 11-13. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB && Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR2) { myWebView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { return true; } }); myWebView.setLongClickable(false); } 

Esto se soluciona en la biblioteca de soporte 22.1.0 (consulte: https://code.google.com/p/android/issues/detail?id=80434 )

  • Código de tipo desconocido del paquete
  • Excepción de Android - Origen desconocido (posiblemente widget)
  • SQLiteException: cerca de "": error de sintaxis (código 1) al compilar
  • Cómo enviar el informe de Android Crash utilizando ACRA
  • Android.mk arm-linux-androideabi-g ++ excepciones y __cxa_allocate_exception
  • Actividad se ha filtrado ServiceConnection com.android.org.chromium.com.googlecode.eyesfree.braille.selfbraille.SelfBrailleClient $ Connection
  • Android Broadcast Receiver Error: Clase no encontrada excepción
  • Excepción de Android en dalvikvm
  • MojoExecutionException: Maven con Android
  • ¿Cómo evitar que una clase de anotación no utilizada y no utilizada bloquee mi programa?
  • Excepción de Android Studio generada durante la reproducción
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.