Ошибка при завышении класса android.support.v7.widget.Toolbar

Я пытаюсь использовать панель инструментов (android.support.v7.widget.Toolbar) с навигационным ящиком. Но он показывает исключение «Ошибка раздувания класса android.support.v7.widget.Toolbar». Код работает нормально, если я не использую android.support.v7.widget.Toolbar в xml. Моя активность расширяется android.support.v7.app.ActionBarActivity. Вот мой main_activity.xml

    <!--
         As the main content view, the view below consumes the entire
         space available using match_parent in both dimensions.

    -->

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


        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <!-- We use a Toolbar so that our drawer can be displayed
             in front of the action bar -->
        <android.support.v7.widget.Toolbar  
            android:id="@+id/my_awesome_toolbar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:minHeight="?attr/actionBarSize"
            android:background="?attr/colorPrimary" />


    </LinearLayout>

        </FrameLayout>

    <!--
         android:layout_gravity="start" tells DrawerLayout to treat
         this as a sliding drawer on the left side for left-to-right
         languages and on the right side for right-to-left languages.
         If you're not building against API 17 or higher, use
         android:layout_gravity="left" instead.
    -->
    <!--
         The drawer is given a fixed width in dp and extends the full height of
         the container.
    -->

    <fragment
        android:id="@+id/navigation_drawer"
        class="com.jooleh.android.merchant.NavigationDrawerFragment"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        tools:layout="@layout/fragment_navigation_drawer" />

</android.support.v4.widget.DrawerLayout>

Стили.xml

 <style name="AppBaseTheme" parent="Theme.AppCompat">
        <item name="colorPrimary">@color/red_primary_500</item>
        <item name="colorPrimaryDark">@color/red_primary_700</item>
        <item name="colorAccent">@color/green_secondary</item>
        <item name="windowActionBar">false</item>

    </style>

Стили-v11

<style name="AppBaseTheme" parent="Theme.AppCompat">
        <!-- API 11 theme customizations can go here. -->
        <item name="windowActionBar">false</item>
    </style>

Стили-v14

<style name="AppBaseTheme" parent="Theme.AppCompat">
        <!-- API 14 theme customizations can go here. -->
        <item name="windowActionBar">false</item>
    </style>

Я тестирую jellybean, minSdkVersion="16" и targetSdkVersion="21".


person VipulKumar    schedule 12.11.2014    source источник
comment
Какова полная трассировка ошибки? Должна быть указана причина исключения.   -  person sergej shafarenka    schedule 13.11.2014
comment
Я решил это. Но до сих пор не уверен, в чем проблема. Вероятно, это была путаница в Android-библиотеках v4 и v13. Потому что это сработало, когда я создал новый проект и запустил точно такой же код.   -  person VipulKumar    schedule 13.11.2014


Ответы (2)


Я смог решить эту проблему, заменив следующее:

В макете панели инструментов замените:

android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"

с

android:minHeight="@dimen/abc_action_bar_default_height_material"
android:background="@color/myColor"
person mike.b93    schedule 13.11.2014
comment
android:background=?attr/colorПервично это должно быть удалено, так как в виджете панели инструментов не разрешен элемент материала. - person TSG anti SO dark forces; 14.03.2018
comment
для API 19 и ниже - person TSG anti SO dark forces; 15.03.2018

Может быть поздно, но кому-то полезно. Я много боролся с той же проблемой, а затем я перешел от

android.support.v7.widget.Toolbar

to

android.widget.Toolbar

и это сработало, я не знаю причину. Если у кого есть инфа поделитесь пожалуйста

person Android Component    schedule 22.09.2015
comment
На самом деле я столкнулся с тем же, но я хотел использовать android.support.v7.widget.Toolbar , я понял, что в моем проекте поддержка v4 была добавлена ​​​​в папку libs. Я удалил это и просто сослался на appcompat v7. и теперь я могу очень хорошо использовать android.support.v7.widget.Toolbar - person Android Component; 25.09.2015