2016-03-10 16 views
152

Ho riscontrato un problema durante la creazione di un progetto in Android Studio. (Versione 1.5.1)Problemi di rendering Evento generato durante il rendering: com.android.ide.common.rendering.api.LayoutlibCallback

descrivo le mie azioni step-by-step:

  • Aprire Android Studio.
  • Creare un nuovo progetto senza alcuna attività.
  • Attività vuote.

E ci potrebbe essere un problema in modalità anteprima:

ottengo questo messaggio:

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

In stack trace:

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) 

quello che potrebbe essere il problema ?

risposta

413

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

Android studio

+0

Grazie, questo consiglio è stato utile – ShtihlFD

+4

"N" FTW! Mi è mancato, grazie! – ejohansson

+5

Sì, funziona. Inoltre, è preferibile deselezionare "Seleziona automaticamente il migliore", poiché seleziona solo l'ultimo. Dovresti selezionare manualmente lo sdk con cui desideri visualizzare l'anteprima. – Abhishek

19

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

generata se un'applicazione tenta di chiamare un metodo di una classe specificata (statica o esempio), e che la classe non ha più una definizione di tale method.Normally, questo errore viene catturato dal compilatore; questo errore può verificarsi solo in fase di esecuzione se la definizione di una classe è stata modificata in modo incompatibile.

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

Basta selezionare "API 23: Android 6.0" nella sezione di anteprima. enter image description here

1

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

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

Quando ho rimuovere l'attributo tools:showIn="@layout/activity_main" dal RelativeLayout 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 il motivo per cui l'azione si risolve il problema se e perché funziona per la versione N.

0

Questa non è una risposta tempestiva ma per chiunque cerchi qualcun altro che ha riscontrato lo stesso problema, un aggiornamento dello studio Android fa il trucco. Mentre tutti i suggerimenti di cui sopra funzionano, si desidera ottenere l'aggiornamento (versione 2.1.2).

2

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

ho dovuto consentire API 23 per essere scaricato accedendo al percorso seguito

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

Controllare l'opzione Android 6.0 (Marshwallow). Questo verrà scaricato ora. Ora potrai vedere il livello API 23 e selezionando quale possiamo risolvere il problema.

Problemi correlati