web-dev-qa-db-ja.com

androidレンダリング中のスタジオSDKバージョン22例外:action_bar

Android studioで新しいプロジェクトを作成すると、問題は発生しません。ただし、activity_main.xmlデザインは、私にこれを示しています:

レンダリングの問題レンダリング中に発生する例外:action_bar。

デザインページからSDKレベル22を21に変更すると、Android studioは何も表示されません

この問題を解決するにはどうすればよいですか?これは重要な問題ではありませんが、どうすれば修正できますか。

51
Ali Aras

ええ、ドロップダウンでAndroidレベルを調整しなければなりませんでした。APIレベル22のデザインタブプレビューは現在壊れています。エラーのスタックトレースと何かすることがありますアルファチャンネルが必要です。Googleは月曜日に修正します。 enter image description here

96
Dave Fisher

ActionBarは、API 21で追加されたツールバーを支持して廃止されました。ただし、Android Studioのテンプレートのベーステーマは引き続きActionBarベースのテーマを使用しているようです。

解決策は、ビルドツールのバージョンをダウングレードするのではなく、アプリのベーステーマを変更することです。ビルドツールをダウングレードすると、Android 5.1以降で追加された最新の機能のサポートを利用できなくなります。

基本テーマは、application/Android:themeの下のAndroidManifest.xmlにリストされています。

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>

これを使用する場合は、ActionBarを表示するXMLレイアウトに必ずToolbar要素を配置してください。子XMLタグでツールバーをカスタマイズする必要があります。 <include>タグの使用をお勧めします。ツールバーのドキュメントで述べられているように、Googleの新しい設計原則では、視覚スタイルの変更が求められています。

現代のAndroid UIでは、開発者はアプリケーションアイコンよりもツールバーの視覚的に明確な配色に頼るべきです。API21デバイス以降では、アプリケーションアイコンとタイトルを標準レイアウトとして使用することは推奨されません。

Android.support.v7.widget.Toolbarは、API 21以前のデバイスのサポートライブラリにあります。

編集:最初のコメントが指摘しているように、Googleには新しいツールバーの使用方法を説明するブログがあります。 http://Android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html

20
colintheshots

問題の人についてすみません。この問題の理由は、より正確にするために、レンダリングライブラリがappcompatライブラリの実際のコードをより多く使用しようとしているためです。ただし、プロジェクトがビルドされていない場合、これによりAndroid Studioでいくつかのバグが公開されます。

いくつかの答えが示唆するように、gradleファイルを更新したり、スタイルを変更したりする必要はありません。

回避策は、プロジェクトを一度ビルドしてから、キャッシュをクリアしてレンダリングを更新することです。キャッシュをクリアする更新アイコンについては、添付の画像をご覧ください。

Refresh Button Location

17
Deepanshu

この答えは私のために働いた:

MyActivity extends AppCompatActivity

の代わりに:

MyActivity extends ActionBarActivity   // now deprecated

プレビューに戻り、キャッシュをクリアして更新してください!

4
Mark Keen

数日間のフラストレーションから、答えは私のアプリモジュールのbuild.gradleにあることがようやくわかりました。 buildToolsVersion22から21.1.2に変更して、あなたのような正確な例外を適切に解決しました。 API 22: Android 5.1と何か関係があるように見えますが、現時点ではしゃっくりをしています。 Googleがすぐに修正することを願っています。

Build.gradleのこれらの行を変更すると、この問題を簡単に修正できます。

Android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
}
1

buildToolsVersion "21.1.2"build.gradleを変更して修正しました(Module:app)

buildToolsVersion "22"を使用しないでください

0
Oscar

プレビューを表示するには、ビルドAPI21を使用してください。私はMacを使用していますが、ビルド22が壊れている/動作していません。ビルド21に切り替えたとき、プレビューが表示されました。

0
Pranav2579

buildToolsVersion "22"またはtargetSdkVersion 22を使用できないのは、適切にレンダリングできないためです。同じエラーが発生し、21に戻すとすぐに動作し始めたため、現時点でAPI 21以下に設定した場合にのみアプリをレンダリングできるようです。 build.gradle(module:app)に移動し、APIをAPI 21の最新バージョンに戻します。

解決:

新しいフォルダー値-v19を作成する

このフォルダーにstyles.xmlを作成します

<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>

そしてすべてです:)

0
HerberthObregon

プロジェクトまたはモジュールを再構築することで解決しました。

0
Pober Wong