2015-06-16 15 views
20

Próbuję użyć CoordinatorLayout z nowej biblioteki projektowania Androida. Dodałem paczkę do gradle; następnie próbuję użyć układu Otrzymuję ten błąd:Nie można zainicjować klasy android.support.design.widget.CoordinatorLayout

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) 

Ktoś ma na to poprawkę? Dziękuję Ci.

Odpowiedz

13
  1. Pierwsza aktualizacja Android Studio do najnowszej wersji (beta) 1.3 wersji beta. [Korzystanie z opcji menu "Sprawdź aktualizacje" w Android studio]

  2. Renderuj swój podgląd za pomocą podglądu w Androidzie M.

enter image description here

Jeśli nie jesteś w stanie znaleźć ustawienia aktualizacji beta zmiana android Studio (Aktualizacje), a następnie aktualizować tę poprawkę i czynią z podglądem M

enter image description here

17

Jest to znany problem. Jest otwarta na Tracker Emisji Android Open Source Project:

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

Rozwiązaniem opisanego przez Android członka projektu jest:

Workaround: Try rendering with M preview using AS v1.3 preview.

Innym sposobem obejścia tego problemu jest zastąpić android.support.design.widget.CoordinatorLayout z a FrameLayout, jeśli chcesz go edytować w edytorze graficznym, wprowadź zmiany w układzie, a następnie zmień go z powrotem na CoordinatorLayout po zakończeniu.

11

może być błąd zależności. Zależności musi być jak

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' 
} 
1

Aby wyświetlić szkic trzeba usunąć linię

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

od głównego RelativeLayout

0

spróbuj dodać te zależności

compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 
5

Ponowne uruchomienie Android Studio naprawiono problem dla mnie, mam nadzieję, że to pomoże ...

+0

Myślę, że tak jest w przypadku, gdy uruchamiasz studio Android po raz pierwszy po instalacji i pobieraniu plików SDK. Może być związane z buforowaniem. Ponowne uruchomienie IDE czyści pamięć podręczną i działa później. – roopunk

+0

Po prostu miałem ten problem i nie był związany z instalacją/aktualizacjami. Prosty restart przywrócił podgląd. – althaus

0

Wpadłem na to, używając najnowszego systemu Mac OS X, najnowszego SDK i najnowszego Androida Studio. Wszystkie są "stabilne". Wstyd w testerach Google.

Jak naprawiłem go:

  1. Z menu Narzędzia: >Android>kierownik SDK
  2. W Menedżerze SDK sprawdzić Android 5.0.1 (API 21). Być może zrobi to każdy inny.
  3. Kliknij "Pokaż szczegóły paczki" na dole. W Androidzie 5.0.1 sprawdź także "Google APIs" i "Intel Atomowy system obrazu x86" (dlaczego nie, jeśli opracujemy dla 21 interfejsu API)?
  4. Kliknij OK i poczekaj na pobranie składników.
  5. Jak już wspomniano w innych odpowiedzi, wybrać, aby uczynić z nim układ:

Choose to render layout with the Android API level 21

Problem rozwiązany!

3

Edytuj swój kod w pliku build.gradle, jak poniżej.

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'

Powiązane problemy