2015-06-16 12 views
20

Sto tentando di utilizzare il CoordinatorLayout dalla nuova libreria di progettazione Android. Ho aggiunto il pacchetto a gradle; poi provo ad usare il layout. Ho ricevuto questo errore:Impossibile inizializzare la classe 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) 

Qualcuno ha una soluzione per questo? Grazie.

risposta

13
  1. Primo aggiornamento di Android Studio all'ultima versione (beta) versione 1.3 beta. [Utilizzando l'opzione di menu 'Controlla aggiornamenti' da Android Studio]

  2. Renderizza l'anteprima utilizzando l'anteprima di Android M.

enter image description here

Se non si è in grado di trovare le impostazioni di aggiornamento beta cambiamento androide studio (Aggiornamenti), quindi aggiornare la patch e rendering con M anteprima

enter image description here

17

Questo è un problema noto. E 'aperto sulla Issue Tracker Android Open Source Project:

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

la soluzione descritta dal membro del progetto Android è:

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

Un altro modo per risolvere questo problema è quello di sostituire il vostro android.support.design.widget.CoordinatorLayout con a FrameLayout quando si desidera modificarlo nell'editor di visual design, apportare le modifiche al layout e quindi modificarlo nuovamente a CoordinatorLayout al termine.

11

potrebbe essere un errore di dipendenza. le dipendenze devono essere come

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

Per visualizzare uno schizzo è necessario eliminare una linea

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

da RelativeLayout principale

0

tenta di aggiungere queste dipendenze

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

Riavvio Android Studio risolto il problema per me, spero che questo aiuti ...

+0

Penso che questo sia il caso quando si inizia Android Studio per la prima volta dopo l'installazione e SDK download. Potrebbe essere correlato al caching. Il riavvio dell'IDE cancella la cache e funziona in seguito. – roopunk

+0

Si è appena verificato questo problema e non era correlato all'installazione/agli aggiornamenti. Un semplice riavvio ha riportato l'anteprima. – althaus

0

Mi sono imbattuto in esso utilizzando l'ultimo Mac OS X, l'ultimo SDK e l'ultimo Android Studio. Tutte sono versioni "stabili". Peccato per i tester di Google.

Come ho riparato:

  1. Dal menù: Strumenti>Android>SDK Manager
  2. Nel SDK Manager, controllare Android 5.0.1 (API 21). Forse qualsiasi altro farà.
  3. Fare clic su "Mostra dettagli pacchetto" nella parte inferiore. Sotto Android 5.0.1, controlla anche "Google API" e "Intel x86 Atom System Image" (perché no? Se svilupperemo per la 21a API)
  4. Fai clic su OK e attendi che i componenti vengano scaricati.
  5. Come già accennato in altre risposte, scegliere per rendere il layout con esso:

Choose to render layout with the Android API level 21

Problema risolto!

3

Modificare il codice nel file build.gradle come di seguito.

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'

Problemi correlati