java.lang.UnsupportedOperationException:不支持的服务:可访问性android studio
我遇到了这个不支持的操作异常问题。我最近转用了android studio,所以对我来说这是一个全新的平台。我想将recyclerview添加到我的项目中,并对其进行处理,但布局设计师向我抛出了以下错误:java.lang.UnsupportedOperationException:不支持的服务:可访问性android studio,java,android,android-studio,material-design,Java,Android,Android Studio,Material Design,我遇到了这个不支持的操作异常问题。我最近转用了android studio,所以对我来说这是一个全新的平台。我想将recyclerview添加到我的项目中,并对其进行处理,但布局设计师向我抛出了以下错误: java.lang.UnsupportedOperationException: Unsupported Service: accessibility at com.android.layoutlib.bridge.android.BridgeContext.getSystemService(
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)
java.lang.UnsupportedOperationException:不支持的服务:可访问性
位于com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:465)
位于android.support.v7.widget.RecyclerView。(RecyclerView.java:290)
位于android.support.v7.widget.RecyclerView。(RecyclerView.java:266)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:379)
位于org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:99)
位于com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172)
在android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)中
在android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132)中
位于android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806)
在android.view.LayoutInflater\u Delegate.rInflate(LayoutInflater\u Delegate.java:64)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
在android.view.LayoutInflater.充气(LayoutInflater.java:504)
在android.view.LayoutInflater.充气(LayoutInflater.java:385)
在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:401)上
位于com.android.layoutlib.bridge.bridge.createSession(bridge.java:329)
位于com.android.ide.common.rendering.layoutbrary.createSession(layoutbrary.java:333)
位于com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:674)
位于com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:663)
位于com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
位于com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:663)
位于com.android.tools.idea.rendering.RenderService.render(RenderService.java:790)
在com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run上(AndroidDesignerEditorPanel.java:480)
在com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
在com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
位于com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
位于com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
位于com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
位于com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
位于com.intellij.util.concurrency.QueueProcessor.runsafe(QueueProcessor.java:238)
在com.intellij.util.Alarm$Request$1.run(Alarm.java:327)上
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
位于java.util.concurrent.FutureTask.run(FutureTask.java:138)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
运行(Thread.java:662)
有什么问题,我真的不知道。我已经看过了在项目中实现RecyclerView的教程,但这是Android Studio在我使用Google官方代码后给我的反馈
编辑:看来问题解决了,因为我接受的答案是正确的,但我没有自己尝试过
编辑:我接受了当前的答案,这与我的问题有点相关,但它不是一个完整的解决方案。如果有人能够或能够对此提供一些修复或解决方法,我将更新已接受的答案,只要它提供了此类信息,或者问题是由IntelliJ或开发人员解决的。另外,感谢Dave指出它失败的地方,至少我们可以给devs写一张罚单:)
BridgeContext.getSystemService()
(从5.0.0 r1开始)如果请求的服务不是以下情况之一,将抛出UnsupportedOperationException
:
- “充气机布局图”
- “文本服务”
- “窗口”
- “输入法”
- “权力”
- “显示”
IntelliJ的UI助手似乎还没有更新,因为
BridgeContext
不应该要求“可访问性”服务。正如评论者所建议的,坚持XML布局,而不是WYSIWYG。不确定是否是这种情况,同样的情况也发生在我身上,GLSurfaceView
-扩展类
出于调试目的,我重写了onDraw(Canvas):
@Override protected void onDraw(Canvas canvas) {
this.toString(); // ← wanted a break here
super.onDraw(canvas);
}
一旦我删除了无意义的
this.toString()代码>,设计器开始工作。此问题最终在API Level 22 SDK Manager和RecyclerView支持库中得到修复。要引用相关Android版本(2015年3月11日关闭),您需要:
。。。通过SDK管理器更新至API 22的最新SDK平台,
并通过更新支持更新到最新的回收器视图
通过SDK管理器存储库,并在build.gradle文件中使用
最新版本(22.0.0)
此外,在designer工具的顶部,您需要选择API Android版本22。如果选择早期版本,即使您拥有最新的支持库,您仍会继续看到错误。我在最新的1.5.1 studio中发现此错误