web-dev-qa-db-fra.com

Impossible d'initialiser la classe Android.support.design.widget.CoordinatorLayout

J'essaie d'utiliser CoordinatorLayout à partir de la nouvelle bibliothèque de conceptions Android. J'ai ajouté le paquet à gradle; alors j'essaie d'utiliser la mise en page, j'obtiens cette erreur:

Java.lang.NoClassDefFoundError: Could not initialize class Android.support.design.widget.CoordinatorLayout
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:207)
at Android.view.BridgeInflater.createViewFromTag(BridgeInflater.Java:132)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:482)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:385)
at com.Android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.Java:400)
at com.Android.layoutlib.bridge.Bridge.createSession(Bridge.Java:332)
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)

Quelqu'un a un correctif pour cela? Je vous remercie.

21
safaiyeh
  1. Première mise à jour du studio Android vers la dernière version (bêta) 1.3 version bêta. [Utilisation de l'option de menu "Vérifier les mises à jour" de Android Studio]

  2. Rendez votre aperçu en utilisant l'aperçu Android M.

enter image description here

Si vous ne trouvez pas la mise à jour bêta, modifiez les paramètres du studio Android (Updates), mettez à jour ce patch et restituez-le avec M preview

enter image description here

13
deniz

C'est un problème connu. Il est ouvert sur le suivi des problèmes de projets Open Source Android:

https://code.google.com/p/Android/issues/detail?id=175595

La solution de contournement décrite par le membre du projet Android est la suivante:

Solution de contournement: essayez d'effectuer un rendu avec l'aperçu M à l'aide de l'aperçu AS v1.3.

Une autre façon de résoudre ce problème consiste à remplacer votre Android.support.design.widget.CoordinatorLayout par une FrameLayout lorsque vous souhaitez le modifier dans l'éditeur de conception visuelle, apportez vos modifications à la présentation, puis rétablissez-la en une CoordinatorLayout lorsque vous avez terminé.

17
BrentM

peut être une erreur de dépendance. les dépendances doivent être comme 

dependencies {

    compile 'com.Android.support:recyclerview-v7:22.2.0'
    compile 'com.Android.support:appcompat-v7:22.2.0'
    compile 'com.Android.support:design:22.2.0'
}
11
ali

Redémarrer Android Studio a résolu le problème pour moi, espérons que cela aide ...

5
Dodi

Pour afficher une esquisse, vous devez supprimer une ligne. 

<tools:showIn="@layout/activity_main"> 

de RelativeLayout principal

3
Butsaty

Éditez votre code dans le fichier build.gradle comme ci-dessous.

compileSdkVersion 24

buildToolsVersion "24.0.2"

compile 'com.Android.support:appcompat-v7:24.2.1'

compile 'com.Android.support:design:24.2.1' 

testCompile 'junit:junit:4.12'

3
Sneha Patel

Je l'ai rencontré avec le dernier Mac OS X, le dernier SDK et le dernier Android Studio. Tous sont des versions "stables". Honte aux testeurs Google.

Comment j'ai résolu le problème:

  1. Depuis le menu: Outils> Android> Gestionnaire de SDK
  2. Dans le gestionnaire de SDK, vérifiez Android 5.0.1 (API 21). Peut-être qu'un autre fera l'affaire.
  3. Cliquez sur "Afficher les détails du paquet" en bas. Sous Android 5.0.1, cochez également "API Google" et "Image système Intel Atom x86" (pourquoi pas? Si nous allons développer pour la 21ème API)
  4. Cliquez sur OK et attendez que les composants soient téléchargés.
  5. Comme déjà mentionné dans d'autres réponses, choisissez de rendre la mise en page avec elle:

 Choose to render layout with the Android API level 21

Problème résolu!

0
Dmitry Isaev

Essayez d'ajouter ces dépendances

compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:design:23.1.1'
0
Radoslav