java.lang.UnsupportedOperationException:不支持的服务:无障碍的Android工作室

我遇到了这个UnsupportedOperationException的问题。 我最近切换到Android工作室,所以这对我来说是相当新的。 我想将recyclerview添加到我的项目中,并且使用它,但是布局devise者抛出了这个错误:

java.lang.UnsupportedOperationException: Unsupported Service: accessibility at com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:465) at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:290) at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:266) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:379) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:99) at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:385) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:401) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:333) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:674) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:663) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:663) at com.android.tools.idea.rendering.RenderService.render(RenderService.java:790) at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:480) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) 

应该是什么问题,我不老实知道。 我已经观看了关于在项目中实现RecyclerView的教程,但这是Android Studio在使用官方Google代码之后所提供的。


编辑:这似乎是解决的答案我接受是正确的,但我没有尝试过我自己的。

编辑:当我接受当前的答案,这是有点相关的我的问题,但它不是一个完整的解决scheme。 如果有人能够或可以提供一些解决方法或解决方法,只要提供这样的信息,或者如果IntelliJ或任何开发人员解决了问题,我都会更新接受的答案。 也谢谢戴夫指出失败的地方,至less我们可以写一个票给开发者:)

Solutions Collecting From Web of "java.lang.UnsupportedOperationException:不支持的服务:无障碍的Android工作室"

此问题最终在API Level 22 SDK Manager和RecyclerView支持库中得到修复。 在相关Android问题(已于2015年3月11日结束)中引用此评论时,您需要:

…通过SDK Manager更新到API 22的最新SDK平台,并通过SDK Manager更新支持存储库并更新到最新的回收站视图,并在build.gradle文件中使用最新版本(22.0.0 )

此外,在devise工具的顶部,您需要selectAPI Android版本22.如果select较早的版本,即使您拥有最新的支持库,仍然会看到错误。

如果请求的服务不是以下之一,则BridgeContext.getSystemService() (从5.0.0开始)将抛出UnsupportedOperationException

  • “layout_inflater”
  • “textservices”
  • “窗口”
  • “input法”
  • “功率”
  • “显示”

在这种情况下,抛出的Exception将包含请求的服务的名称。

看来,IntelliJ的UI助手还没有更新,因为BridgeContext不应该要求“可访问性”服务。 正如评论者所build议的,坚持XML布局,而不是所见即所得。

我在最新的1.5.1工作室中发现了这个错误。 在我的情况下,它正在修改通过更改API级别预览。 在这里输入图像说明

不知道是否是这种情况,与GLSurfaceView延伸类相同。

为了debugging目的,我重写onDraw(Canvas)

 @Override protected void onDraw(Canvas canvas) { this.toString(); // ← wanted a break here super.onDraw(canvas); } 

只要我删除无意义this.toString(); ,devise师开始工作。

约斯特改变Api级别22或23。

在这里输入图像说明