2016-11-25 123 views
-1

當我將CoordinatorLayout設置爲我的根元素時,Android Studio呈現預覽時出現以下錯誤。Android Studio:CoordinatorLayout無法啓動

java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library. 
    at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:36) 
    at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:195) 
    at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:189) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465) 
    at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172) 
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105) 
    at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:186) 
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:334) 
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:345) 
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:245) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) 
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) 
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966) 
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533) 
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$53(RenderTask.java:659) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

以下是我的佈局文件。

<?xml version="1.0" encoding="utf-8"?> 
    <android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_authentication" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.domain.projectFile.authentication.AuthenticationActivity" 
    tools:ignore="MissingConstraints"> 
    <android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 


      <FrameLayout 
       android:id="@+id/fragment_frame" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"/> 

    </android.support.design.widget.CoordinatorLayout> 
</android.support.constraint.ConstraintLayout> 

,這是我的build.gradle

apply plugin: 'com.android.application' 
    android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.1" 
    defaultConfig { 
     applicationId "com.domain.projectFile" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 


    //Added dependencies here 

    //Dependency for Retrofit and Gson Converter (related to login/register activity) 
    compile 'com.squareup.retrofit2:retrofit:2.0.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.0' 

    //Dependency for Design Support Library for UI 

    compile 'com.squareup.retrofit2:retrofit:2.0.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.0' 
    compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4' 
    compile 'com.android.support:support-v4:25.0.1' 
    compile 'com.android.support:appcompat-v7:25.0.1' 
    compile 'com.android.support:support-annotations:25.0.1' 

    compile 'com.android.support:recyclerview-v7:25.0.1' 
    compile 'com.android.support:design:25.0.1' 

    testCompile 'junit:junit:4.12' 
} 

我試圖與ConstraintLayout包裹CoordinatorLayout。在將ConstraintLayout換成LinearLayout後,我也嘗試了相同的操作,因爲我認爲ConstraintLayout可能是問題所在。

有誰知道可能是什麼問題?

編輯1:styles.xml文件位置:

 <resources> 
    <!-- Base application theme. --> 
    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 
</resources> 
+0

u能張貼YOUT styles.xml太....似乎與你的應用程序的主題 – Ak9637

+0

一個問題發表您的styles.xml –

+0

@DeepakSachdeva添加的文件 – user3519023

回答

0

嘗試此更改您的樣式表 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"

+0

我認爲它的工作。謝謝你,先生!一個簡單的問題,在ConstraintLayout編輯器的屏幕頂部顯示「CoordinatorLayout/activety_authentication」,這是正常的嗎? – user3519023

+0

我不太瞭解約束佈局,據我所知...約束佈局仍處於萌芽階段......所以請嘗試一下.....但是請避免在我的主要應用中使用它,直到它的穩定釋放 – Ak9637

+0

我試圖查找什麼時候是穩定版本,但找不到它。你認爲現在還差嗎? – user3519023

0

更改您themestyleTheme.AppCompat.Light.DarkActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
</style> 
+0

這也適用。我想訣竅是編輯父母。謝謝! – user3519023

0

在styles.xml中更改父項。嘗試這個。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="windowActionModeOverlay">true</item> 
</style>