Java.lang.UnsupportedOperationException: Неподдерживаемый сервис: студия Android
У меня возникла проблема с этим UnsupportedOperationException. Недавно я перешел на андроид-студию, поэтому для меня это совершенно новое. Я хотел добавить recyclerview в свой проект и делать что-то с ним, но конструктор макета бросает мне эту ошибку:
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.
EDIT: Кажется, он разрешен, так как ответ, который я принял, является правильным, но я не пробовал это самостоятельно.
EDIT: поскольку я принял текущий ответ, это несколько актуально для моей проблемы, но это не полное решение. Если кто-то может или может предоставить какое-то исправление или обходное решение, я буду обновлять принятый ответ до тех пор, пока он предоставит такую информацию, или если проблема была решена IntelliJ или кем бы то ни было разработчиком. Также спасибо Дэйву за то, что он указал, где он терпит неудачу, по крайней мере, мы можем написать билет для разработчиков:)
Ответы
Ответ 1
Эта проблема была окончательно исправлена в библиотеке поддержки SDK-менеджера API уровня 22 и RecyclerView. Чтобы процитировать этот комментарий в соответствующей проблеме Android (которая была закрыта 11 марта 2015 г.), вам необходимо:
... обновление до последней платформы SDK для API 22 через SDK Manager, и обновить до последнего вида ресайклеров, обновив поддержку хранилище через диспетчер SDK и в файле build.gradle для использования последняя версия (22.0.0)
Кроме того, в верхней части инструмента для разработчиков вам нужно выбрать API Android версии 22. Если вы выберете более раннюю версию, вы будете продолжать видеть эту ошибку, даже если у вас есть последняя библиотека поддержки.
Ответ 2
BridgeContext.getSystemService()
(начиная с 5.0.0 r1) будет бросать UnsupportedOperationException
, если запрошенная услуга не является одной из следующих:
- "layout_inflater"
- "textservices"
- "окно"
- "input_method"
- "власть"
- "дисплей"
В таких случаях выведенное исключение будет содержать имя запрашиваемой услуги.
Кажется, что помощники IntelliJ UI не обновлялись, потому что BridgeContext
не должен запрашивать услугу "доступности". Как отмечали комментаторы, придерживайтесь XML-макета, а не WYSIWYG.
Ответ 3
Я нашел эту ошибку в последней студии 1.5.1.
В моем случае это исправление путем изменения уровня API для предварительного просмотра.
![введите описание изображения здесь]()
Ответ 4
Не уверен, что это так, то же самое произошло со мной с классом GLSurfaceView
-extending.
Я отменил onDraw(Canvas)
для цели отладки:
@Override protected void onDraw(Canvas canvas) {
this.toString(); // ← wanted a break here
super.onDraw(canvas);
}
Как только я удалил бессмысленный this.toString();
, дизайнер начал работать.
Ответ 5
Jost Изменить уровень Апи 22 или 23.
![введите описание изображения здесь]()