2015-06-15 27 views
20

Khi tôi đặt CoordinatorLayout làm phần tử gốc của mình, tôi nhận được lỗi sau khi Android Studio hiển thị bản xem trước.Android Studio: Hiển thị sự cố với 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:214) 
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:142) 
    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:413) 
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321) 
    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) 

file layout của tôi trông như thế này

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/detail_backdrop_height" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleMarginEnd="64dp" 
      app:expandedTitleMarginStart="48dp" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/img" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:fitsSystemWindows="true" 
       android:adjustViewBounds="true" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     </android.support.design.widget.CollapsingToolbarLayout> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/detail_recyclerview" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/appbar_layout" 
     android:layout_marginTop="-25dp" 
     android:background="@color/background_light" 
     android:paddingTop="36dp" 
     android:scrollbars="vertical" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_below="@id/appbar_layout" 
     android:layout_gravity="bottom|end" 
     android:layout_marginEnd="16dp" 
     android:layout_marginTop="-32dp" 
     android:src="@android:drawable/ic_menu_call" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" /> 
</android.support.design.widget.CoordinatorLayout> 

Đây là build.gradle tôi

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.godine" 
     minSdkVersion 21 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    lintOptions { 
     abortOnError false 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:cardview-v7:22.2.0' 
    compile 'com.android.support:recyclerview-v7:22.2.0' 
    compile 'com.android.support:design:22.2.0' 
    compile 'com.android.support:appcompat-v7:22.2.0' 

    ... 
} 

Có ai có một ý tưởng những gì có thể sai ở đây?

Sửa Như @deniz đã được đề cập trong một câu trả lời xem trước làm việc với các bản cập nhật mới nhất của Android Studio

+0

bạn đã thêm thư viện ở dạng gradle chưa ?? – Chandru

+0

tại sao bạn có 2 không gian tên (xmlns) –

+0

@Chandru Tôi đã cập nhật câu hỏi – mvieghofer

Trả lời

14
các

Đây là một vấn đề được biết đến trong Tracker Issue Dự án Nguồn Android mở:

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

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

Giải pháp thay thế: Thử hiển thị với bản xem trước M bằng cách sử dụng bản xem trước AS v1.3 HOẶC sử dụng FrameLayout để thiết kế và thay đổi thành android.support.design.widget.CoordinatorLayout trong khi gỡ lỗi.

3

Cập nhật android studio phiên bản mới nhất (phiên bản beta) 1.3 beta version.Menu -> 'Check for updates'

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

Hãy thử Renderring xem trước của bạn sử dụng Android M xem trước.

enter image description here

+0

Cảm ơn đã làm điều đó cho tôi – Arthur

2

Đợi đã! Không chuyển sang kênh beta.

Tính đến ngày 29 tháng 7, Android Studio 1.3 đã được phát hành trên kênh ổn định. Tôi đã kiểm tra và có thể xác nhận rằng phiên bản mới của IDE hoàn toàn giải quyết vấn đề của bạn được đề cập đến với hiển thị CoordinatorLayout.

Android Studio 1.3 vẫn chưa được công bố trên website Android, tuy nhiên, bạn có thể nâng cấp lên Android Studio của bạn 1,2-1,3 bằng cách tải về các bản vá cập nhật thông qua menu IDE. Đơn giản chỉ cần click vào:

Help -> Check for Update -> Update và Restart

T.B. Bạn không cần Android M để hiển thị. API thấp hơn cũng hoạt động tốt.

+2

Tôi đã nhận được phiên bản 1.3 và vẫn không hiển thị Tọa độLayout: / –

3

tôi đã giải quyết được lỗi tương tự của android...coordinatorlayout xuất hiện thay cho bản xem trước của ứng dụng android bởi:

1- Đóng dự án

2- Khởi động lại studio android

3 Xây dựng dự án

Có thể nó sẽ giúp ai đó.

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