2017-02-09 82 views
0

沒有編輯清單無法修改基本應用主題

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

和值\風格

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

我得到的錯誤是這樣

02-09 20:42:47.567 24389 -24389 /? E/AndroidRuntime:致命異常: 主 過程:com.example.golendukhin.settingsSwitcher,PID:24389 了java.lang.RuntimeException:無法啓動活動 ComponentInfo {com.example.golendukhin.settingsSwitcher/com.example.golendukhin .settingsSwitcher.MainActivity}: android.view.InflateException:二進制XML文件行#2:二進制XML 文件行#2:錯誤膨脹類 android.support.design.widget.CoordinatorLayout at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2581) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647) at android.app.ActivityThread.-wrap11(Ac tivityThread.java) at android.app.ActivityThread $ h.handleMessage(ActivityThread.java:1502) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper。 java:207) at android.app.ActivityThread.main(ActivityThread.java:5763) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:888) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 引起:android.view.InflateException:二進制XML文件行#2:二進制XML 文件行# 2:錯誤膨脹類 android .support.design.widget.CoordinatorLayout 在android.view.LayoutInflater.inflate(LayoutInflater.java:539) 在android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在android.view.LayoutInflater.inflate( LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com。示例.golendukhin.settingsSwitcher.MainActivity.onCreate(MainActivity.java:61) at android.app.Activity.performCreate(Activity.java:6280) at android.app.Instrumentation.callActivityOnCreate(Instrumentation .java:1116) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647) at android.app.ActivityThread.-wrap11(ActivityThread。 java) at android.app.ActivityThread $ h.handleMessage(ActivityThread.java:1502) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java: 207) at android.app.ActivityThread.main(ActivityThread.java:5763) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(Zy (ZygoteInit。)。java:749) 原因:android.view.InflateException:二進制XML文件行#2:錯誤 在android.view.LayoutInflater.createView(LayoutInflater.java:645)處的類android.support.design.widget.CoordinatorLayout 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在android.view.LayoutInflater.inflate(LayoutInflater.java:492) 在android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在android.support.v7.app.AppCompatDelega teImplV9.setContentView(AppCompatDelegateImplV9.java:284) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.example.golendukhin.settingsSwitcher.MainActivity.onCreate(MainActivity.java:61) 在android.app.Activity.performCreate(Activity.java:6280) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1116) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread $ H。在android.app.ActivityThread.main處的android.os.Looper.loop(Looper.java:207) 處使用handleMessage(ActivityThread.java:1502) (android.os.Handler.dispatchMessage(Handler.java:111) (本地方法) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:888) at com.android.internal .os.ZygoteInit.main(ZygoteInit.java:749) 引發:java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method) at android.view.LayoutInflater.createView(LayoutInflater的.java :619) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在android.view.LayoutInflater.inflate(LayoutInflater.java:492 ) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java :284) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.example.golendukhin.settingsSwitcher.MainActivity.onCreate(MainActivity.java:61 ) 在android.app.Activity.performCreate(Activity.java:6280) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1116) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534) 在android.app.ActivityThread上的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647) at android.app.ActivityThread.-wrap11(ActivityThread.java) $ H.handleMessage(ActivityThread.java:1502) at android.os.Handler.dispatchMessage(Handler.java:111) 在android.os.Looper.loop(Looper.java:207) 在android.app.ActivityThread.main(ActivityT hread。java:5763) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:888) at com.android.internal.os .ZygoteInit.main(ZygoteInit.java:749) 引起:java.lang.IllegalArgumentException:您需要在設計庫中使用Theme.AppCompat 主題(或後代)。 at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:36) at android.support.design.widget.CoordinatorLayout。(CoordinatorLayout.java:192) at android.support.design.widget.CoordinatorLayout 。(CoordinatorLayout.java:186) at java.lang.reflect.Constructor.newInstance(Native Method) at android.view.LayoutInflater.createView(LayoutInflater.java:619) at android.view.LayoutInflater.createViewFromTag(LayoutInflater .java:764) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284 ) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.example.golendukhin.settingsSwitcher.MainActivity.onCreate(MainActivity.java:61) at android.app.Activity.performCreate (Activity.java:6280) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1116) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534) 在android.app.ActivityThread上的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647) at android.app.ActivityThread.-wrap11(ActivityThread.java) $ H.handleMessage(ActivityThread.java:1502) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5763) at java。 lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:888) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java :749)

問題是 - 我犯了什麼樣的錯誤。 創建新的「Hello World!」具有相同清單和樣式文件的項目工作正常。在這兩個項目中,主要活動擴展了AppCompatActivity。 完全卡住試圖實現與項目發生了什麼。

谷歌搜索爲我提供了改變主題的想法。 我這樣做了,取而代之

android:theme="@style/AppTheme.NoActionBar"> 

android:theme="@style/Theme.AppCompat"> 

主題變得黑暗和在「樣式」造型它沒有任何效果。 我甚至刪除了基本應用主題 - 沒有效果。所以,這不是一個正確的方法。 需要任何幫助,我甚至不知道下一步該怎麼做。

+0

日誌顯示,你有一些問題與佈局的XML文件,而不是與主題 – arjun

+1

這[鏈接](https://www.tutorialspoint.com/android/android_styles_and_themes.htm)將幫助你 –

+0

lalit jadhav真的幫助。謝啦。我希望我可以閱讀本教程 –

回答

0

解決方法是不明顯的。 我在清單移除了「活動」節點<!--android:theme="@style/Theme.AppCompat">-->,改名<style name="AppTheme"parent="Theme.AppCompat.Light.DarkActionBar"><style name="MainTheme" parent="Theme.AppCompat.Light.DarkActionBar">和applyed我改名MainTheme在「應用程序」節點上的所有應用程序清單android:theme="@style/MainTheme"> 應用程序現在工作。可能「AppTheme」是以某種方式在android中預定義的。 感謝jadhav推薦的tutotial。他真的幫了忙。

清單 ...

<application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/MainTheme"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name"> 
      <!--android:theme="@style/Theme.AppCompat">--> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

...

styles.xml

<!-- Base application theme. --> 
    <style name="MainTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <!--<item name="colorPrimaryDark">@color/colorPrimary</item>--> 
     <!--<item name="colorAccent">@color/colorPrimary</item>--> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style>