web-dev-qa-db-fra.com

Problèmes de rendu de l'aperçu de la mise en page dans Android Studio (Android Studio 1.2)

J'ai l'erreur suivante dans la fenêtre d'aperçu de la dernière version d'Android Studio (1.2) qui m'empêche de voir la mise en page que je crée, j'ai essayé de redémarrer Android Studio plusieurs fois, ainsi que de nettoyer, reconstruire le projet et redémarrer mon ordinateur 

MODIFIER:

Certains projets ont la même erreur alors que d'autres projets plus anciens fonctionnent bien

The following classes could not be instantiated:
- Android.support.v7.internal.widget.ActionBarOverlayLayout (Open Class, Show Exception, Clear Cache)

Détails de l'exception

  Java.lang.NoClassDefFoundError:       Android/support/v7/internal/widget/ActionBarOverlayLayout$1
    at Android.support.v7.internal.widget.ActionBarOverlayLayout.<init>(ActionBarOverlayLayout.Java:93)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:39)
    at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:27)
    at Java.lang.reflect.Constructor.newInstance(Constructor.Java:513)
    at org.jetbrains.Android.uipreview.ViewLoader.createNewInstance(ViewLoader.Java:413)
    at org.jetbrains.Android.uipreview.ViewLoader.loadView(ViewLoader.Java:105)
    at com.Android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.Java:177)
    at Android.view.BridgeInflater.loadCustomView(BridgeInflater.Java:214)
    at Android.view.BridgeInflater.createViewFromTag(BridgeInflater.Java:142)
    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:482)
    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
    at com.Android.layoutlib.bridge.bars.BridgeActionBar.<init>(BridgeActionBar.Java:84)
    at com.Android.layoutlib.bridge.bars.AppCompatActionBar.<init>(AppCompatActionBar.Java:56)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.createActionBar(RenderSessionImpl.Java:1691)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.Java:362)
    at com.Android.layoutlib.bridge.Bridge.createSession(Bridge.Java:321)
    at com.Android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.Java:350)
    at com.Android.tools.idea.rendering.RenderTask$2.compute(RenderTask.Java:497)
    at com.Android.tools.idea.rendering.RenderTask$2.compute(RenderTask.Java:485)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.Java:894)
    at com.Android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.Java:485)
    at com.Android.tools.idea.rendering.RenderTask.render(RenderTask.Java:590)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.Java:644)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.Java:79)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.Java:586)
    at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.Java:152)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.Java:452)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.Java:402)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.Java:54)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.Java:137)
    at org.jetbrains.Android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.Java:581)
    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:439)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:895)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:918)
    at Java.lang.Thread.run(Thread.Java:695)
8
MichaelStoddart

Essayez de changer le thème de votre application de base en utilisant le code ci-dessous - dans res/values ​​/ styles.xml

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

OU

Vous pouvez également essayer de changer le niveau de l'API de l'aperçu pour en réduire un de la configuration de l'aperçu.

enter image description here

31
deniz

Vous pouvez également mettre à jour Gradle vers la version 1.2.3 comme expliqué ici: https://code.google.com/p/Android/issues/detail?id=171417

Apparemment c'était un bogue sur la version 1.2.2 de Gradle et à partir de la prochaine version du studio Android, Gradle 1.2.3 sera la valeur par défaut pour les nouveaux projets.

Au moins cela a fonctionné pour.

Bien que Base.Theme.AppCompat .... soit la superclasse de Theme.AppCompat .... de toute façon, je préfère le correctif utilisant la nouvelle version de Gradle.

Travaillé pour moi, espérons que cela fonctionne pour vous.

De plus, je devais nettoyer et reconstruire le projet.

4
Antonio Ribeiro

Le moyen le plus simple serait de changer le thème de l'application en cliquant sur AppTheme.

Cela n'a pas besoin de changer quoi que ce soit dans le code.

Je joins l'image ci-dessous

AppTheme exemple de solution problème de rendu Android studio