Problemas de renderizado Excepción generada durante el renderizado: com.android.ide.common.rendering.api.LayoutlibCallback

154

Encontré un problema al crear un proyecto en Android Studio. (Versión 1.5.1)

Describo mis acciones paso a paso:

  • Abra Android Studio.
  • Crea un nuevo proyecto sin ninguna actividad.
  • Haz una actividad en blanco.

Y puede haber un problema en el modo de vista previa:

Recibo este mensaje:

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

En seguimiento de pila:

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)

¿Cual podría ser el problema?

ShtihlFD
fuente

Respuestas:

414

Tuve el mismo problema después de algunas actualizaciones hace unos minutos, lo que hice para resolver el problema de renderizado fue cambiar la versión de Android utilizada para renderizar diseños de Android Studio a "API 23: Android 6.0".

Estudio de Android

Elvis
fuente
55
Si, eso funciona. Además, es mejor desmarcar "Seleccionar automáticamente lo mejor", ya que solo selecciona la última. Debe elegir manualmente el SDK con el que desea obtener una vista previa.
Abhishek
Hice esto pero recibo el siguiente error ahora. Couldn't resolve resource @android:color/background_material_light
Martin Hoban
Solo para advertir: es un problema recurrente.
marciowb
Pero, ¿por qué ocurre este problema cuando el nivel de API se establece en 24. Y por qué no en 23?
Jay Donga
19

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

Se lanza si una aplicación intenta llamar a un método específico de una clase (ya sea estática o de instancia), y esa clase ya no tiene una definición de ese método. Normalmente, el compilador detecta este error; Este error solo puede ocurrir en tiempo de ejecución si la definición de una clase ha cambiado de manera incompatible.

Su aplicación debe apuntar a Android 6.0 (API nivel 23) para habilitar este comportamiento; no necesita agregar ningún código adicional.

Simplemente seleccione "API 23: Android 6.0" en la sección Vista previa. ingrese la descripción de la imagen aquí

IntelliJ Amiya
fuente
2

Tuve el mismo problema cuando instalé Android Studio 2.1 en ubuntu 14.04.Incluso el icono del robot Android que muestra la versión de Android utilizada para el diseño de representación solo mostraba la versión API Nivel 24 y ninguna otra versión.

Tuve que habilitar la descarga de API 23 navegando a la ruta a continuación

Herramientas -> SDK Manager -> Android SDK -> Plataformas SDK -> Nombre.

Marque la opción Android 6.0 (Marshwallow), que se descargará ahora. Ahora podrá ver el nivel 23 de API y seleccionar qué podemos solucionar este problema.

crackerplace
fuente
1

Tuve un problema similar con Android Studio 1.5.1 en Windows 10. La vista previa no funcionaba, independientemente de la versión de Android seleccionada. El stacktrace comienza con:

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

Cuando se quita el atributo tools:showIn="@layout/activity_main" de las RelativeLayoutresuelve el problema para todas las versiones de Android, excepto "N". Tengo Android 2.2, 2.3.3, 5.0.1 y 6.0 habilitado

Sin embargo, no puedo explicar por qué la acción resuelve el problema o por qué funciona para la versión N.

githeko
fuente
0

Esta no es una respuesta oportuna, pero para cualquiera que busque a alguien que experimente el mismo problema, una actualización del estudio de Android hace el truco. Si bien todas las sugerencias anteriores funcionan, desea obtener una actualización (versión 2.1.2).

Stephen Nyamweya
fuente