2015-03-13 53 views
51

當我在android studio上創建一個新項目時,它不會產生任何問題。但是,看看activity_main.xml設計,它顯示了這一點:android studio sdk version 22在渲染過程中出現異常:action_bar

渲染問題渲染期間引發的異常:action_bar。

當我從頁面設計工作室的Android SDK更改水平22至21顯示什麼

我怎樣才能解決這個問題?這不是重要的問題,但我想知道我該如何解決這個問題。

回答

0

我固定它通過改變buildToolsVersion "21.1.2",在build.gradle(模塊:APP)

不要使用buildToolsVersion "22"

+0

感謝您的回答 – 2015-03-14 19:27:35

96

呀剛剛向下調整的下降了Android的水平。 API級別22中的設計選項卡預覽現在被打破。我查看了錯誤的堆棧跟蹤,它與需要alpha通道有關。我相信Google會在星期一修復它。 :) enter image description here

+0

這似乎適用於我。謝謝。 – Chrispix 2015-03-16 19:15:27

+4

我認爲它仍然沒有修正:( – 2015-04-04 17:38:22

+1

仍然沒有。是否有報道? – 2015-04-07 21:53:39

0

請使用build API21來查看預覽。我在Mac上,建立22是打破/不爲我工作。當我切換回建立21,我可以看到預覽。

1

經過幾天的沮喪,我終於找到答案在於我的應用程序模塊的build.gradle!我已將buildToolsVersion22更改爲21.1.2,以便正確解決您的問題。這似乎與API 22: Android 5.1目前正在打嗝有關。希望Google能儘快修復它。

改變在這些的build.gradle行給了我一個快速修復這個問題:

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 
} 
20

動作條爲支持工具欄,將其在API 21中添加但是,基本主題爲Android棄用Studio的模板似乎仍然使用基於ActionBar的主題。

解決方案不是降級您的構建工具版本,而是更改您應用的基本主題。如果您降級構建工具,則會錯過支持Android 5.1及更高版本中添加的最新功能。

您的基本主題在AndroidManifest.xml中的application/android:theme下列出。

轉到res/values/styles.xml並將父屬性更改爲不依賴於棄用的ActionBar的不同基本主題。在不太可能的情況下,您的應用程序是API 21+,您可以使用Theme.Material。否則,您將需要使用Theme.AppCompat.NoActionBar或定義您自己的基本主題。

這裏有一個styles.xml例如:

<style name="AppTheme.Base" parent="Theme.AppCompat"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

如果你用這個,一定要放在工具欄元素在你想要的動作條顯示你的XML佈局。您需要使用子級XML標籤自定義工具欄。我建議使用<include>標籤。由於它的工具欄文檔中說,谷歌的新設計原則要求在視覺風格的變化:

在現代的Android UI的開發者應該靠更對工具欄比他們的應用程序圖標,視覺上不同的色彩方案。應用程序圖標和標題作爲標準佈局的使用在API 21設備和更新版本上是不鼓勵的。

android.support.v7.widget.Toolbar位於API 21之前的設備支持庫中。

編輯:正如第一條評論指出的,Google有一個博客解釋如何使用新的工具欄。 http://android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html

+0

這是完整的未來證明答案。 Android開發人員博客有一些非常好的文檔http://android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html。 – jalvarado91 2015-04-05 17:40:15

0

事實證明,您不能使用buildToolsVersion "22"targetSdkVersion 22,因爲它無法正確呈現。看起來它只能在設置爲API 21或更低時呈現應用程序,因爲我收到了相同的錯誤,並且一旦我將其更改回到21,它又開始工作。只需進入build.gradle(module:app)並將API更改回API 21的最新版本即可。

17

對不起這個問題的人。問題的原因是渲染庫現在試圖使用更多來自appcompat庫的實際代碼,以便更準確。但是,這在項目未構建時暴露了Android Studio中的一些錯誤。

沒有必要更新您的gradle文件或更改樣式作爲一些答案的建議。

解決方法是先構建一次項目,然後通過清除緩存來刷新渲染。請參閱附加圖像以瞭解清除緩存的刷新圖標。

Refresh Button Location

+0

謝謝!真的幫助:-) – 2015-04-20 18:50:54

0

我通過重建項目或模塊解決了這個問題。

0

的解決:

新建一個文件夾 值-V19

此文件夾

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- For actionBar n' statusbar --> 
    <item name="colorPrimary">#COLOR/item> 
    <item name="colorPrimaryDark">#COLOR</item> 

    <!-- For items --> 
    <item name="colorAccent">#COLOR</item> 
</style> 

在創建styles.xml是所有:)

4

這個答案工作對我來說:

MyActivity extends AppCompatActivity 

相反的:

MyActivity extends ActionBarActivity // now deprecated 

回到你的預覽,清除緩存並刷新!