1

so I am developing and I came a cross an inflate exception and I don't know what to do with it.

log cat:

03-09 16:33:12.018    8201-8201/org.aron.modiryar E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: org.aron.modiryar, PID: 8201
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.aron.modiryar/org.aron.modiryar.MainActivity}: android.view.InflateException: Binary XML file line #5: Error inflating class <unknown>
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:212)
        at android.app.ActivityThread.main(ActivityThread.java:5135)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.view.InflateException: Binary XML file line #5: Error inflating class <unknown>
        at android.view.LayoutInflater.createView(LayoutInflater.java:620)
        at `com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
        at org.aron.modiryar.fragment.MainMenu.onCreateView(MainMenu.java:41)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
        at       android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
        at     android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
        at android.app.Activity.performStart(Activity.java:5241)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2210)
  Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at android.view.LayoutInflater.createView(LayoutInflater.java:594)

            

and this is my android manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.aron.modiryar"
android:versionCode="1"
android:versionName="1.0" android:uiOptions="splitActionBarWhenNarrow">

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
    android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name"
    android:theme="@style/AppBaseTheme" android:enabled="true" android:name=".system.Initialize"
    android:uiOptions="splitActionBarWhenNarrow">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden"
        android:uiOptions="splitActionBarWhenNarrow" >
        <meta-data android:name="android.support.UI_OPTIONS"
                   android:value="splitActionBarWhenNarrow" />
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>

and my layout which can not be inflated is like this:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/mainmenulayer" android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" android:visibility="visible"  style="@style/MainMenu">
   <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_title_height" android:orientation="horizontal" style="@style/RowMenu">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_title_collect" style="@style/RowMenuTitleText" />
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_inbox">
            <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="@dimen/main_menu_row_count_margin_left">
                <LinearLayout android:id="@+id/total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TotalCount" android:orientation="horizontal"></LinearLayout>
                <LinearLayout android:id="@+id/overdue_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/OverDueCount" android:visibility="invisible" android:orientation="horizontal"></LinearLayout>
            </LinearLayout>
            <org.aron.modiryar.view.TextView android:id="@+id/menu_inbox_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_inbox" style="@style/RowMenuText" />
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_inbox"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_title_height" android:orientation="horizontal" style="@style/RowMenu">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_title_focuse_on" style="@style/RowMenuTitleText" />
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_today">
            <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="@dimen/main_menu_row_count_margin_left">
                <LinearLayout android:id="@+id/total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TotalCount"></LinearLayout>
                <LinearLayout android:id="@+id/overdue_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/OverDueCount" android:visibility="invisible"></LinearLayout>
            </LinearLayout>
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_today" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_today"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_next_action">
            <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="@dimen/main_menu_row_count_margin_left">
                <LinearLayout android:id="@+id/total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TotalCount"></LinearLayout>
                <LinearLayout android:id="@+id/overdue_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/OverDueCount" android:visibility="invisible"></LinearLayout>
            </LinearLayout>
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_next_action" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_next"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_tomorrow">
            <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="@dimen/main_menu_row_count_margin_left">
                <LinearLayout android:id="@+id/total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TotalCount"></LinearLayout>
                <LinearLayout android:id="@+id/overdue_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/OverDueCount" android:visibility="invisible"></LinearLayout>
            </LinearLayout>
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_tomorrow" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_tomorrow"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_calendar">
            <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="@dimen/main_menu_row_count_margin_left">
                <LinearLayout android:id="@+id/total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TotalCount"></LinearLayout>
                <LinearLayout android:id="@+id/overdue_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/OverDueCount" android:visibility="invisible"></LinearLayout>
            </LinearLayout>
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_calendar" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_scheduled"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_someday">
            <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="@dimen/main_menu_row_count_margin_left">
                <LinearLayout android:id="@+id/total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TotalCount"></LinearLayout>
                <LinearLayout android:id="@+id/overdue_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/OverDueCount" android:visibility="invisible"></LinearLayout>
            </LinearLayout>
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_sameday" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_someday"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_waitingfor">
            <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="@dimen/main_menu_row_count_margin_left">
                <LinearLayout android:id="@+id/total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TotalCount"></LinearLayout>
                <LinearLayout android:id="@+id/overdue_count" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/OverDueCount" android:visibility="invisible"></LinearLayout>
            </LinearLayout>
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_waitingfor" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_waiting"/>
        </LinearLayout>

        <LinearLayout android:layout_width="fill_parent" android:layout_height="@dimen/main_menu_divider_line_height" style="@style/MainMenuLine"/>
        <LinearLayout android:layout_width="fill_parent" android:layout_height="@dimen/main_menu_divider_line_height" style="@style/MainMenuLineWhite"/>

        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_project">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_project" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_project"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_Goal">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_goal" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_goal"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_responsibility">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_responsibility" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_responsibility"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_vision">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_vision" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_inbox"/>
        </LinearLayout>

        <LinearLayout android:layout_width="fill_parent" android:layout_height="@dimen/main_menu_divider_line_height" style="@style/MainMenuLine"/>
        <LinearLayout android:layout_width="fill_parent" android:layout_height="@dimen/main_menu_divider_line_height" style="@style/MainMenuLineWhite"/>

        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_reference">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_reference" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_inbox"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_trash">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_trash" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_trash"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_done">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_done" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_trash"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_routine">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_routine" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_inbox"/>
        </LinearLayout>
        <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/main_menu_row_height" android:orientation="horizontal" style="@style/RowMenu" android:id="@+id/menu_tags">
            <org.aron.modiryar.view.TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/menu_tags" style="@style/RowMenuText"/>
            <ImageView android:layout_width="@dimen/main_menu_row_icon_width" android:layout_height="@dimen/main_menu_row_icon_height" android:src="@drawable/home_tags"/>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

as you may or may not see there is some linearlayouts with same ids but I know for fact that's not my problem. the real problem is app runs on earlier android versions but not on higher ones. and I already tried changing target sdk in android manifest.

so what am I missing please help.

public class TextView extends android.widget.TextView {
public TextView(Context context) {
    super(context);
    this.setTypeface(Config.getDefaultTypeFace(context));
}

public TextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.setTypeface(Config.getDefaultTypeFace(context));
}

public TextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    this.setTypeface(Config.getDefaultTypeFace(context));
}
}
3
  • the mess you are seeing is in layout and my problem should be some where in there so i can't delete some of it. Commented Mar 9, 2015 at 15:29
  • My layouts are all properly indented. Anyway, this component looks very suspicious, to me: org.aron.modiryar.view.TextView Commented Mar 9, 2015 at 15:45
  • I checked it before seems like there is no problem in it but I'll now add the code. Commented Mar 9, 2015 at 15:52

1 Answer 1

1

so after about 8 hours working on it i found out what my problem was, and I am posting this answer so it may help someone else.

1- as you can see in stack trace my problem was in MainMenu.java where it was inflating, so my problem is in the layout inflated.

2- the XML file line 5 is in that layout.it might seem so innocent but it has an style.

3- in that style it has dimension witch only is defined in values-large that was my problem.I had to define it in all other dimen values to work.

note: my problem was not in SDK version it was in device size. hope this help someone else.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.