Problemas de renderização Exceção gerada durante a renderização: com.android.ide.common.rendering.api.LayoutlibCallback


154

Encontrei um problema ao criar um projeto no Android Studio. (Versão 1.5.1)

Descrevo minhas ações passo a passo:

  • Abra o Android Studio.
  • Crie um novo projeto sem nenhuma atividade.
  • Faça uma atividade em branco.

E pode haver um problema no modo de visualização:

Recebo esta mensagem:

Rendering Problems Exception raised during rendering: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser(Ljava/lang/String;)Lorg/xmlpull/v1/XmlPullParser;

No rastreamento de pilha:

java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser(Ljava/lang/String;)Lorg/xmlpull/v1/XmlPullParser;
    at com.android.layoutlib.bridge.impl.ResourceHelper.getInternalComplexColor(ResourceHelper.java:146)
    at com.android.layoutlib.bridge.impl.ResourceHelper.getColorStateList(ResourceHelper.java:231)
    at android.content.res.BridgeTypedArray.getColorStateList(BridgeTypedArray.java:308)
    at android.widget.TextView.<init>(TextView.java:776)
    at android.widget.TextView.<init>(TextView.java:705)
    at android.widget.TextView.<init>(TextView.java:701)
    at com.android.layoutlib.bridge.MockView.<init>(MockView.java:50)
    at com.android.layoutlib.bridge.MockView.<init>(MockView.java:45)
    at com.android.layoutlib.bridge.MockView.<init>(MockView.java:41)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:163)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at com.android.layoutlib.bridge.bars.CustomBar.<init>(CustomBar.java:95)
    at com.android.layoutlib.bridge.bars.StatusBar.<init>(StatusBar.java:67)
    at com.android.layoutlib.bridge.impl.Layout.createStatusBar(Layout.java:222)
    at com.android.layoutlib.bridge.impl.Layout.<init>(Layout.java:144)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:213)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:510)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:498)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498)
    at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72)
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:610)
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:607)
    at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:607)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629)
    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:351)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Qual poderia ser o problema?

Respostas:


414

Tive o mesmo problema após algumas atualizações, minutos atrás, o que fiz para resolver o problema de renderização foi alterar a versão do Android usada para renderizar layouts do Android Studio de volta para "API 23: Android 6.0".

Android studio


5
Sim, isso funciona. Além disso, é melhor desmarcar a opção "Selecionar automaticamente melhor", pois apenas seleciona a mais recente. Você deve escolher manualmente o sdk com o qual deseja visualizar.
Abhishek

Eu fiz isso, mas recebo o seguinte erro agora. Couldn't resolve resource @android:color/background_material_light
Martin Hoban

Só para avisar: é um problema recorrente.
Marciowb

Mas, por que esse problema ocorre quando o nível da API é definido como 24. E por que não em 23?
Jay Donga

19

java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser (Ljava / lang / String;) Lorg / xmlpull / v1 / XmlPullParser;

Lançado se um aplicativo tentar chamar um método especificado de uma classe (estática ou instância) e essa classe não tiver mais uma definição desse método. Normalmente, esse erro é detectado pelo compilador; esse erro pode ocorrer apenas em tempo de execução se a definição de uma classe tiver sido alterada incompativelmente.

Seu aplicativo deve segmentar o Android 6.0 (nível 23 da API) para ativar esse comportamento; você não precisa adicionar nenhum código adicional.

Basta selecionar "API 23: Android 6.0" na seção Visualizar. insira a descrição da imagem aqui


2

Mesmo com o Android Studio 2.1 instalado no ubuntu 14.04, o ícone do robô android, que exibe a versão do Android usada para o layout de renderização, mostrava apenas a versão API Nível 24 e nenhuma outra versão.

Eu tive que permitir o download da API 23 navegando para o caminho abaixo

Ferramentas -> SDK Manager -> Android SDK -> Plataformas SDK -> Nome.

Marque a opção Android 6.0 (Marshwallow), que será baixada agora. Agora você poderá ver o nível 23 da API e selecionar quais podemos solucionar esse problema.


1

Eu tive um problema semelhante com o Android Studio 1.5.1 no Windows 10. A visualização não estava funcionando, independentemente da versão do Android selecionada. O rastreamento de pilha começa com:

"java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser (Ljava / lang / String;) Lorg / xmlpull / v1 / XmlPullParser;"

Quando eu removo o atributo tools:showIn="@layout/activity_main" do RelativeLayoutproblema resolve para todas as versões do Android, exceto "N". Tenho o Android 2.2, 2.3.3, 5.0.1 e 6.0 ativado

Não sei explicar por que a ação resolve o problema ou por que funciona na versão N.


0

Esta não é uma resposta oportuna, mas para quem procura alguém que está enfrentando o mesmo problema, uma atualização do estúdio android faz o truque. Enquanto todas as sugestões acima funcionam, você deseja obter a atualização (versão 2.1.2).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.