Void
Void

Reputation: 1315

android.view.InflateException: Binary XML file line #17: Error inflating class <unknown>

Hi i am trying to start activity with this layout, but it works only on android 5+, when i am running it on older versions it always crushes. What may cause this? Maybe i am using some restricted for android version<5 xml fields?

Styles

https://drive.google.com/open?id=0B-pbp_K-xNkEb0pQbzIzd0FYMU0 https://drive.google.com/open?id=0B-pbp_K-xNkEWlpuanl3ejhxd2c

Layout

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="192dp"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

            <ImageView
                android:id="@+id/header"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/sport"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                app:layout_collapseMode="parallax" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/anim_toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/background"
        android:clipToPadding="false"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/background"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/title_lay"
                android:layout_width="match_parent"
                android:layout_height="72dp"
                android:background="@color/background"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:paddingLeft="30dp"
                android:paddingRight="30dp">

                <FrameLayout
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_marginRight="16dp">

                    <ImageView
                        android:id="@+id/iv_icon"
                        android:layout_width="40dp"
                        android:layout_height="40dp" />

                </FrameLayout>

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center_vertical"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/club_title"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                        android:textSize="16sp"
                        android:textColor="@color/second_text" />

                    <TextView
                        android:id="@+id/club_description"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                        android:textColor="@color/text_color" />
                </LinearLayout>


            </LinearLayout>

            <LinearLayout
                android:id="@+id/subscription_lay"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:layout_below="@id/title_lay"
                android:layout_marginBottom="8dp"
                android:background="@drawable/backgroundtoolbar"
                android:clickable="true"
                android:gravity="center_vertical"
                android:orientation="horizontal">

                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp" />

                <TextView
                    android:id="@+id/subscription_txt"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/str_subscribe_on"
                    android:textSize="16sp" />

            </LinearLayout>

            <android.support.v7.widget.CardView
                android:id="@+id/address_card_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:background="@color/second_background"
                android:layout_below="@id/subscription_lay"
                app:cardCornerRadius="4dp"
                >

                <RelativeLayout
                    android:id="@+id/address_lay"
                    android:layout_width="match_parent"
                    android:layout_height="48dp"
                    android:background="@color/second_background"
                    android:gravity="center_vertical"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp">

                    <TextView
                        android:id="@+id/club_address"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=""
                        android:textColor="@color/second_text" />

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:src="@drawable/ic_maps_place" />
                </RelativeLayout>

            </android.support.v7.widget.CardView>

            <android.support.v7.widget.CardView
                android:id="@+id/schedule_card_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:background="@color/second_background"
                android:layout_below="@id/address_card_view"
                app:cardCornerRadius="4dp"
                >

                <RelativeLayout
                    android:id="@+id/schedule_lay"
                    android:layout_width="match_parent"
                    android:layout_height="64dp"
                    android:background="@color/second_background"
                    android:gravity="center_vertical"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp">

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

                        <TextView
                            android:id="@+id/club_schedule"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/schedule_title"
                            android:gravity="center_vertical"
                            android:textColor="@color/text_color" />

                        <TextView
                            android:id="@+id/schedule_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text=""
                            android:gravity="center_vertical"
                            android:textColor="@color/second_text" />
                    </LinearLayout>

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:src="@drawable/ic_notification_event_note" />
                </RelativeLayout>

            </android.support.v7.widget.CardView>

            <android.support.v7.widget.CardView
                android:id="@+id/contact_card_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="8dp"
                android:background="@color/second_background"
                android:layout_below="@id/schedule_card_view"
                app:cardCornerRadius="4dp"
                >

                <RelativeLayout
                    android:id="@+id/contact_lay"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/second_background"
                    android:gravity="center_vertical"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp">

                    <RelativeLayout
                        android:id="@+id/phone_lay"
                        android:layout_width="match_parent"
                        android:gravity="center_vertical"
                        android:layout_height="64dp">

                        <LinearLayout

                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:gravity="center_vertical"
                            android:orientation="vertical">

                            <TextView
                                android:id="@+id/phone_title"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:gravity="center_vertical"
                                android:textColor="@color/text_color" />

                            <TextView
                                android:id="@+id/phone_value"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:gravity="center_vertical"
                                android:textColor="@color/second_text" />
                        </LinearLayout>

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:src="@drawable/ic_maps_local_phone" />
                    </RelativeLayout>

                    <RelativeLayout
                        android:id="@+id/web_lay"
                        android:layout_width="match_parent"
                        android:layout_height="64dp"
                        android:gravity="center_vertical"
                        android:layout_below="@id/phone_lay">

                        <LinearLayout

                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:gravity="center_vertical"
                            android:orientation="vertical">

                            <TextView
                                android:id="@+id/web_title"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:gravity="center_vertical"
                                android:text=""
                                android:textColor="@color/text_color" />

                            <TextView
                                android:id="@+id/web_value"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:gravity="center_vertical"
                                android:text=""
                                android:textColor="@color/second_text" />
                        </LinearLayout>

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:src="@drawable/ic_action_language" />
                    </RelativeLayout>

                    <RelativeLayout
                        android:id="@+id/mail_lay"
                        android:layout_width="match_parent"
                        android:layout_height="64dp"
                        android:gravity="center_vertical"
                        android:background="@color/second_background"
                        android:layout_below="@id/web_lay">

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

                            <TextView
                                android:id="@+id/mail_title"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:gravity="center_vertical"
                                android:textColor="@color/text_color" />

                            <TextView
                                android:id="@+id/mail_value"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="12-3123-123-34"
                                android:gravity="center_vertical"
                                android:textColor="@color/second_text" />
                        </LinearLayout>

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:src="@drawable/ic_content_send" />
                    </RelativeLayout>

                    <View
                        android:id="@+id/devider"
                        android:layout_width="match_parent"
                        android:layout_height="1dp"
                        android:layout_below="@id/mail_lay"
                        android:paddingLeft="-30dp"
                        android:paddingRight="-30dp"
                        android:background="@color/second_background" />

                    <RelativeLayout
                        android:id="@+id/other_lay"
                        android:layout_width="match_parent"
                        android:layout_height="48dp"
                        android:gravity="center_vertical"
                        android:layout_below="@id/devider">

                        <TextView
                            android:id="@+id/club_contacts"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/detail"
                            android:layout_centerVertical="true"
                            android:textColor="@color/text_color" />

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:src="@drawable/ic_hardware_keyboard_arrow_right" />
                    </RelativeLayout>

                </RelativeLayout>

            </android.support.v7.widget.CardView>
        </RelativeLayout>

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

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

Styles

 <!-- Base application theme. -->
    <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>

<style name="AppTheme.NoActionBar" >
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

Errors:

android.view.InflateException: Binary XML file line #17: Error inflating class <unknown>
 Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class <unknown>
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.

Gradle

apply plugin: 'com.android.application'


android {
    compileSdkVersion 24
    buildToolsVersion "23.0.2"
    enforceUniquePackageName = false

    defaultConfig {
        applicationId "com.mycrosswod.crossfit"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {

    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:24+'
    compile 'com.android.support:design:24.0.0'
    compile 'com.android.support:recyclerview-v7:24.0.0'
    compile 'com.android.support:percent:24.0.0'
    compile 'com.google.firebase:firebase-core:9.6.1'
    compile 'com.google.android.gms:play-services-maps:9.6.1'
    compile 'com.google.code.gson:gson:1.7.2'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup.okhttp3:okhttp:3.1.2'
    compile 'com.facebook.android:facebook-android-sdk:4+'
    compile 'com.vk:androidsdk:+'
    compile 'com.google.apis:google-api-services-youtube:v3-rev163-1.21.0'
    compile 'com.thefinestartist:ytpa:1.2.1'
    compile 'com.github.clans:fab:1.6.3'
    compile "com.google.firebase:firebase-messaging:9.0.0"
    compile 'com.android.support:multidex:1.0.1'
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
}

apply plugin: 'com.google.gms.google-services'

Upvotes: 1

Views: 6292

Answers (3)

Hossein Shahdoost
Hossein Shahdoost

Reputation: 1742

Are you using Vector images?

If you are try replacing all your android:src to app:srcCompat (when you are referring to a Vector image)

Upvotes: 0

udayatom
udayatom

Reputation: 126

Change the lines as corresponding files values/v-2x/styles.xml

<style name="Base.MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="windowActionBarOverlay">true</item>`
    <item name="windowNoTitle">true</item>

</style>
<style name="MyTheme" parent="Base.MyTheme">
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>

final styles in values/v-2x/styles.xml

<resources>     
<style name="CrossfitTextView" parent="@android:style/Widget.TextView">
<item name="android:textColor">@color/text_color</item>
<item name="android:drawableBottom">@color/tomato</item>
</style>
<style name="CrossfitSecondTextView" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@color/text_color2</item>
</style>
<style name="CrossfitTitleTextView" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@color/second_text</item>
</style>
<style name="CrossfitEditText" parent="@android:style/Widget.EditText">
    <item name="android:textSize">16sp</item>
    <item name="android:maxLines">1</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorHint">@color/text_color</item>
</style>
<style name="Crossfit.Button" parent="Widget.AppCompat.Button.Colored">
    <item name="colorButtonNormal">@color/colorPrimary</item>
    <item name="colorControlHighlight">@color/colorPrimary</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:paddingLeft">10dp</item>
    <item name="android:paddingRight">10dp</item>
    <item name="android:gravity">center</item>
</style>
<style name="Crossfit.F" parent="Widget.AppCompat.Button.Colored">
    <item name="colorButtonNormal">@color/com_facebook_button_background_color</item>
    <item name="colorControlHighlight">@color/com_facebook_button_background_color</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:paddingLeft">10dp</item>
    <item name="android:paddingRight">10dp</item>
    <item name="android:gravity">center</item>
    <item name="android:drawableLeft">@drawable/com_facebook_button_icon</item>
</style>
<style name="Crossfit.V" parent="Widget.AppCompat.Button.Colored">
    <item name="colorButtonNormal">@color/vk_share_blue_color</item>
    <item name="colorControlHighlight">@color/vk_share_blue_color</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:paddingLeft">10dp</item>
    <item name="android:paddingRight">10dp</item>
    <item name="android:gravity">center</item>
    <item name="android:drawableLeft">@drawable/com_facebook_button_icon</item>
</style>
<style name="CustomActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:windowActionBarOverlay">true</item>
    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>
</style>


<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
<item name="android:colorPrimary">@color/colorPrimary</item>
<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/colorPrimary</item>
<item name="android:windowBackground">@color/colorAccent</item>
<item name="android:navigationBarColor">@color/colorPrimary</item>
</style>

<style name="MyTheme.Detail" parent="MyTheme">
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>
<style name="cfButton" parent="Widget.AppCompat.Button.Colored">
    <item name="colorButtonNormal">@color/colorPrimary</item>
    <item name="android:colorButtonNormal">@color/colorPrimary</item>
    <item name="colorControlHighlight">@color/colorPrimaryDark</item>
    <item name="android:textColor">@android:color/white</item>
</style>

<style name="MenuButtonsSmall">
    <item name="fab_size">mini</item>
    <item name="fab_colorNormal">@color/end</item>
    <item name="fab_colorPressed">@color/end</item>
    <item name="fab_colorRipple">@color/end</item>
</style>
<style name="mytext" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/text_color</item>
    <item name="android:textColorHint">@color/text_color</item>
    <item name="colorAccent">@color/text_color</item>
</style>
</resources>

Changes made in values/styles.xml

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

final styles in values/styles.xml

<resources>     
<style name="CrossfitTextView" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@color/text_color</item>
</style>

<style name="CrossfitEditText" parent="@android:style/Widget.EditText">
    <item name="android:textColor">@color/text_color</item>
    <item name="android:textColorHint">@color/text_color</item>
</style>

<!-- Base application theme. -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
</style>

<style name="AppTheme" parent="AppTheme.Base">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>


 <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

 <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
 <style name="MaterialDialogSheet" parent="@android:style/Theme.Dialog">
    <item name="android:windowIsTranslucent">true</item>
    <item    name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:windowAnimationStyle">@style/MaterialDialogSheetAnimation</item>
</style>

 <style name="MaterialDialogSheetAnimation">
    <item name="android:windowEnterAnimation">@anim/popup_show</item>
    <item name="android:windowExitAnimation">@anim/popup_hide</item>
</style>

 <style name="MenuButtonsSmall">
    <item name="fab_size">mini</item>
    <item name="fab_colorNormal">#026158</item>
    <item name="fab_colorPressed">#026158</item>
    <item name="fab_colorRipple">#026158</item>
</style>

 <style name="MenuButtonNormal">
    <item name="fab_size">normal</item>
    <item name="fab_colorNormal">#026158</item>
    <item name="fab_colorPressed">#026158</item>
    <item name="fab_colorRipple">#026158</item>
</style>
</resources>

Upvotes: 0

udayatom
udayatom

Reputation: 126

The issue about android doesn't know which theme to take. it is the conflict between pre-lollipop and post lollipop devices, So we need to explicitly convert into No action bar theme. Adding

compile 'com.android.support:appcompat-v7:24.2.0'

here my case is v24, choose your convenient version.To defining pre lollipop devices we change the style scheme in res/values/style.xml as follows:

<!-- Base application theme. -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
</style>

<style name="AppTheme" parent="AppTheme.Base">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

AppTheme inherited from AppTheme.Base it inherited from Theme.AppCompat.Light.NoActionBar. So here we can mention our supported color schemes here for pre-lollipop devices.Thats it :)

Material design supported from lollipop devices. we can add more color schemes here.We already defined AppTheme in res/values/styles.xml.

Now inherit same AppTheme from res/values/values/styles.xml to res/values/values-v21/styles.xml. So Values-v21/styles.xml as follows:

<style name="AppTheme" parent="AppTheme.Base">
    <!-- Customize your theme here. -->
    <item name="android:colorPrimary">@color/colorPrimary</item>
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:colorAccent">@color/colorAccent</item>
    <item name="android:textColorPrimary">@color/colorPrimary</item>
    <item name="android:windowBackground">@color/colorAccent</item>
    <item name="android:navigationBarColor">@color/colorPrimary</item>
</style>

Try this. :-)

Upvotes: 1

Related Questions