153 votes

Problèmes de rendu Exception levée lors du rendu: com.android.ide.common.rendering.api.LayoutlibCallback

J'ai rencontré un problème lors de la création d'un projet dans Android Studio. (Version 1.5.1)

Je décris mes actions pas à pas:

  • Ouvrez Android Studio.
  • Créez un nouveau projet sans aucune activité.
  • Faites une activité vide.

Et il pourrait y avoir un problème en mode prévisualisation:

Je reçois ce message:

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

En trace de pile:

 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)
 

Quel pourrait être le problème?

414voto

Elvis Heh Points 3656

J'ai eu le même problème après quelques minutes de mises à jour, ce que j'ai fait pour résoudre le problème de rendu consistait à changer la version Android utilisée pour rendre les mises en page d'Android Studio à "API 23: Android 6.0".

Studio Android

19voto

IntelliJ Amiya Points 672

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

Levée si une application tente d'appeler une méthode d'une classe (statique ou instance), et que la classe n'a plus de définition de cette méthode.Normalement, cette erreur est capturé par le compilateur; cette erreur peut se produire uniquement au moment de l'exécution si la définition d'une classe a incompatibilité changé.

Votre application doit cibler Android 6.0 (API level 23) pour activer ce comportement, vous n'avez pas besoin d'ajouter du code supplémentaire.

Il suffit de sélectionner "API 23: Android 6.0" dans la Section Aperçu . enter image description here

1voto

user3462841 Points 11

J'ai eu un problème similaire avec Android Studio 1.5.1 dans Windows 10. L'aperçu ne fonctionnait pas n'importe quelle version d'Android a été sélectionné. La stacktrace commence avec:

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

Quand j'ai supprimer l'attribut tools:showIn="@layout/activity_main" de la RelativeLayout , ce problème se résout pour toutes les versions d'Android à l'exception de "N". J'ai Android 2.2, 2.3.3, 5.0.1 et 6.0 activé

Je ne peux pas expliquer pourquoi l'action résout le problème ou pourquoi il ne fonctionne pas pour la version N.

0voto

test Points 31

changer la version Android.
Cliquez sur l'icône du robot Android à droite du SDK Android pour changer de version entrer la description de l'image ici

0voto

Steven Kayter Points 31

Ce n'est pas une réponse opportune, mais pour ceux qui recherchent quelqu'un d'autre qui rencontre le même problème, une mise à jour du studio Android fait l'affaire. Alors que toutes les suggestions ci-dessus fonctionnent, vous voulez obtenir la mise à jour (version 2.1.2).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X