Probleme beim Rendern Ausnahme beim Rendern: com.android.ide.common.rendering.api.LayoutlibCallback

154

Beim Erstellen eines Projekts in Android Studio ist ein Problem aufgetreten. (Version 1.5.1)

Ich beschreibe meine Handlungen Schritt für Schritt:

  • Öffnen Sie Android Studio.
  • Erstellen Sie ein neues Projekt ohne Aktivität.
  • Machen Sie eine leere Aktivität.

Im Vorschaumodus liegt möglicherweise ein Problem vor:

Ich bekomme diese Nachricht:

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

In der Stapelverfolgung:

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)

Was könnte das Problem sein?

ShtihlFD
quelle

Antworten:

414

Ich hatte das gleiche Problem nach einigen Updates vor Minuten. Um das Rendering-Problem zu lösen, habe ich die Android-Version, die zum Rendern von Layouts von Android Studio verwendet wurde, wieder auf "API 23: Android 6.0" geändert.

Android Studio

Elvis
quelle
5
Ja das funktioniert Deaktivieren Sie außerdem am besten "Automatisch am besten auswählen", da nur die neueste ausgewählt wird. Sie sollten das SDK, mit dem Sie eine Vorschau anzeigen möchten, manuell auswählen.
Abhishek
Ich habe dies getan, aber jetzt wird der folgende Fehler angezeigt. Couldn't resolve resource @android:color/background_material_light
Martin Hoban
Nur um zu warnen: Es ist ein wiederkehrendes Problem.
Marciowb
Aber warum tritt dieses Problem auf, wenn die API-Ebene auf 24 eingestellt ist? Und warum nicht in 23?
Jay Donga
19

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

Wird ausgelöst, wenn eine Anwendung versucht, eine bestimmte Methode einer Klasse (entweder statisch oder instanziell) aufzurufen, und diese Klasse keine Definition dieser Methode mehr hat. Normalerweise wird dieser Fehler vom Compiler abgefangen. Dieser Fehler kann nur zur Laufzeit auftreten, wenn sich die Definition einer Klasse nicht kompatibel geändert hat.

Ihre App muss auf Android 6.0 (API-Level 23) ausgerichtet sein , um dieses Verhalten zu aktivieren. Sie müssen keinen zusätzlichen Code hinzufügen.

Wählen Sie einfach "API 23: Android 6.0" im Vorschaubereich. Geben Sie hier die Bildbeschreibung ein

IntelliJ Amiya
quelle
2

Ich hatte das gleiche Problem, als ich Android Studio 2.1 auf Ubuntu 14.04 installierte. Selbst das Android-Roboter-Symbol, das die zum Rendern des Layouts verwendete Android-Version anzeigt, zeigte nur die API Level 24-Version und keine anderen Versionen an.

Ich musste API 23 zum Herunterladen aktivieren, indem ich zum folgenden Pfad navigierte

Extras -> SDK-Manager -> Android SDK -> SDK-Plattformen -> Name.

Aktivieren Sie die Option Android 6.0 (Marshwallow). Diese wird jetzt heruntergeladen. Jetzt können Sie API Level 23 sehen und auswählen, welche wir dieses Problem umgehen können.

Crackerplace
quelle
1

Ich hatte ein ähnliches Problem mit Android Studio 1.5.1 in Windows 10. Die Vorschau funktionierte nicht, egal welche Android-Version ausgewählt wurde. Die Stapelverfolgung beginnt mit:

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

Wenn ich das Attribut tools:showIn="@layout/activity_main" aus dem entferne, wird RelativeLayoutdas Problem für alle Android-Versionen außer "N" behoben. Ich habe Android 2.2, 2.3.3, 5.0.1 und 6.0 aktiviert

Ich kann nicht erklären, warum die Aktion das Problem behebt oder warum sie für Version N funktioniert.

Githeko
quelle
0

Dies ist keine rechtzeitige Antwort, aber für alle, die nach anderen suchen, bei denen das gleiche Problem auftritt, reicht ein Update des Android Studios aus. Während alle oben genannten Vorschläge funktionieren, möchten Sie ein Update (Version 2.1.2) erhalten.

Stephen Nyamweya
quelle