2015-06-16 27 views
20

Tôi đang cố gắng sử dụng CoordinatorLayout từ thư viện thiết kế Android mới. Tôi đã thêm gói để gradle; sau đó tôi cố gắng sử dụng bố cục tôi nhận được lỗi này:Không thể khởi tạo lớp 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) 

Mọi người có khắc phục sự cố này không? Cảm ơn bạn.

Trả lời

13
  1. Cập nhật phiên bản beta beta mới nhất cho Android phiên bản beta. [Sử dụng tùy chọn trình đơn 'Kiểm tra bản cập nhật' từ studio android]

  2. Hiển thị bản xem trước của bạn bằng cách sử dụng bản xem trước Android M.

enter image description here

Nếu bạn không thể tìm thấy các thiết lập cập nhật beta thay đổi android studio (cập nhật), sau đó cập nhật bản vá đó và đưa ra với M preview

enter image description here

17

Đây là sự cố đã biết. Đó là mở trên Issue Tracker Dự án Nguồn Android mở:

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

Cách giải quyết được mô tả bởi các thành viên dự án Android là:

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

Một cách khác để workaround vấn đề này là để thay thế android.support.design.widget.CoordinatorLayout của bạn với FrameLayout khi bạn muốn chỉnh sửa nó trong trình chỉnh sửa thiết kế trực quan, thực hiện thay đổi của bạn đối với bố cục và sau đó thay đổi lại thành CoordinatorLayout khi bạn hoàn tất.

11

có thể là lỗi phụ thuộc. phụ thuộc phải như

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

Để hiển thị một phác thảo bạn cần phải xoá một dòng

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

từ RelativeLayout chính

0

Cố gắng thêm các phụ thuộc

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

Khởi động lại Android Studio đã khắc phục sự cố cho tôi, hy vọng điều này sẽ giúp ...

+0

tôi nghĩ đây là trường hợp bạn bắt đầu studio android lần đầu tiên sau khi cài đặt và tải xuống sdk. Có thể liên quan đến bộ nhớ đệm. Khởi động lại IDE xóa cache và nó hoạt động sau đó. – roopunk

+0

Chỉ có vấn đề này và nó không liên quan đến cài đặt/cập nhật. Một khởi động lại đơn giản đã mang lại bản xem trước. – althaus

0

Tôi đã sử dụng Mac OS X, SDK mới nhất và Android Studio mới nhất. Tất cả đều là phiên bản "ổn định". Xấu hổ về người thử nghiệm của Google.

Làm thế nào tôi cố định nó:

  1. Từ menu: cụ>Android>quản lý SDK
  2. Trong quản lý SDK, kiểm tra Android 5.0.1 (API 21). Có lẽ bất kỳ người nào khác sẽ làm.
  3. Nhấp vào "Hiển thị chi tiết gói" ở dưới cùng. Trong Android 5.0.1, cũng kiểm tra "Google API" và "Intel x86 Atom System Image" (tại sao không? Nếu chúng tôi sẽ phát triển API thứ 21)
  4. Nhấp vào OK và đợi các thành phần tải xuống.
  5. Giống như đã đề cập trong câu trả lời khác, chọn để làm cho bố trí với nó:

Choose to render layout with the Android API level 21

Vấn đề giải quyết!

3

Chỉnh sửa mã của bạn thành tệp build.gradle như dưới đây.

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'

Các vấn đề liên quan