Problemi di rendering Eccezione sollevata durante il rendering: com.android.ide.common.rendering.api.LayoutlibCallback


154

Ho riscontrato un problema durante la creazione di un progetto in Android Studio. (Versione 1.5.1)

Descrivo le mie azioni passo dopo passo:

  • Apri Android Studio.
  • Crea un nuovo progetto senza alcuna attività.
  • Fai un'attività vuota.

E potrebbe esserci un problema in modalità anteprima:

Ricevo questo messaggio:

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

Traccia in 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)

Quale potrebbe essere il problema?

Risposte:


414

Ho avuto lo stesso problema dopo alcuni aggiornamenti di minuti fa, quello che ho fatto per risolvere il problema del rendering è stato quello di cambiare la versione Android utilizzata per eseguire il rendering dei layout da Android Studio a "API 23: Android 6.0".

Studio Android


5
Sì, funziona. Inoltre, è meglio deselezionare "Scegli automaticamente il meglio", in quanto seleziona solo l'ultimo. Dovresti scegliere manualmente lo sdk con cui desideri visualizzare l'anteprima.
Abhishek,

L'ho fatto ma ricevo il seguente errore ora. Couldn't resolve resource @android:color/background_material_light
Martin Hoban,

Solo per avvisare: è un problema ricorrente.
marciowb,

Ma perché questo problema si verifica quando il livello API è impostato su 24. E perché non in 23?
Jay Donga,

19

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

Viene generato se un'applicazione tenta di chiamare un metodo specificato di una classe (statica o di istanza) e tale classe non ha più una definizione di tale metodo. Normalmente, questo compilatore rileva questo errore; questo errore può verificarsi solo in fase di esecuzione se la definizione di una classe è stata modificata in modo incompatibile.

L'app deve essere indirizzata ad Android 6.0 (livello API 23) per abilitare questo comportamento; non è necessario aggiungere alcun codice aggiuntivo.

Seleziona "API 23: Android 6.0" nella sezione Anteprima. inserisci qui la descrizione dell'immagine


2

Ho avuto lo stesso problema quando ho installato Android Studio 2.1 su Ubuntu 14.04. Anche l'icona del robot Android che mostra la versione Android utilizzata per il layout di rendering mostrava solo la versione API Level 24 e nessuna altra versione.

Ho dovuto abilitare il download dell'API 23 navigando nel percorso seguente

Strumenti -> SDK Manager -> Android SDK -> Piattaforme SDK -> Nome.

Seleziona l'opzione Android 6.0 (Marshwallow), che verrà scaricata ora. Ora sarai in grado di vedere API Level 23 e selezionando quale possiamo aggirare questo problema.


1

Ho avuto un problema simile con Android Studio 1.5.1 in Windows 10. L'anteprima non funzionava, indipendentemente dalla versione di Android selezionata. Lo stacktrace inizia con:

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

Quando rimuovo l'attributo tools:showIn="@layout/activity_main" dal RelativeLayoutproblema, il problema si risolve per tutte le versioni di Android tranne "N". Ho Android 2.2, 2.3.3, 5.0.1 e 6.0 abilitato

Non riesco a spiegare perché l'azione risolva il problema o perché funziona per la versione N.


0

Questa non è una risposta tempestiva, ma per chiunque cerchi qualcun altro con lo stesso problema, un aggiornamento di Android Studio fa il trucco. Mentre tutti i suggerimenti sopra funzionano, vuoi ottenere l'aggiornamento (versione 2.1.2).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.