Could not initialize class android.support.design.widget.CoordinatorLayout

我怕爱的太早我们不能终老 提交于 2019-11-30 06:01:08

问题


I am trying to use the CoordinatorLayout from the new Android design library. I added the package to gradle; then I try to use the layout I get this error:

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)

Anybody have a fix for this? Thank you.


回答1:


  1. First update android studio to latest version (beta) 1.3 beta version. [Using menu option 'Check for updates' from android studio]

  2. Render your preview using Android M preview.

If you are not able to find the beta update change android studio settings(Updates), then update that patch and render with M preview




回答2:


This is a known issue. It is open on the Android Open Source Project Issue Tracker:

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

The workaround described by the Android project member is:

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

Another way to workaround this issue is to replace your android.support.design.widget.CoordinatorLayout with a FrameLayout when you want to edit it in the visual design editor, make your changes to the layout and then change it back to a CoordinatorLayout when you are finished.




回答3:


may be dependency error. dependencies must be like

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



回答4:


Restarting Android Studio fixed the problem for me, hope this helps...




回答5:


To display a sketch you need to delete a line

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

from main RelativeLayout




回答6:


Edit your code into build.gradle file as below.

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'




回答7:


Try to add these dependencies

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



回答8:


I ran into it using the latest Mac OS X, latest SDK and latest Android Studio. All of them are "stable" versions. Shame on Google testers.

How I fixed it:

  1. From menu: Tools > Android > SDK manager
  2. In the SDK Manager, check Android 5.0.1 (API 21). Perhaps any other will do.
  3. Click "Show package details" at the bottom. Under Android 5.0.1, also check "Google APIs" and "Intel x86 Atom System Image" (why not? if we'll develop for the 21th API)
  4. Click OK and wait for the components to download.
  5. Like already mentioned in other answers, choose to render the layout with it:

Problem solved!



来源:https://stackoverflow.com/questions/30879510/could-not-initialize-class-android-support-design-widget-coordinatorlayout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!