Anders Jansson
Anders Jansson

Reputation: 13

Error inflating class com.android.internal.widget.ActionBarContainer

I have a terrible time trying to find out whats wrong with this problem. When I trying to click a button in my app i get the following error:

android.view.InflateException: Binary XML file line #31: Error inflating class com.android.internal.widget.ActionBarContainer

Here are my manifest file:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.anders.ugym"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="23" />

    <application

        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

        <activity
            android:name=".LoginActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".RegisterActivity" />
        <activity android:name=".TodoActivity" />


    </application>

</manifest>

And my styles.xml:

<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

<style name="AppTheme.NoActionBar">
    <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" />

And my activity_register.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".RegisterActivity" >

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

        <TextView
            android:id="@+id/error_messages"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:textColor="@color/red"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/username" />

        <EditText
            android:id="@+id/register_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="text" >

            <requestFocus />
        </EditText>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/password_label" />

        <EditText
            android:id="@+id/register_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPassword" />

        <Button
            android:id="@+id/sign_up"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:onClick="register"
            android:text="@string/sign_up_label" />
    </LinearLayout>

    <Button
        android:id="@+id/signInButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="17sp"
        android:onClick="showLogin"
        android:text="@string/already_have_an_account_label" />

</LinearLayout>

My Exception:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.anders.ugym/com.example.anders.ugym.MainActivity}: android.view.InflateException: Binary XML file line #31: Error inflating class com.android.internal.widget.ActionBarContainer
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                                           at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:135)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at java.lang.reflect.Method.invoke(Method.java:372)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                                                                        Caused by: android.view.InflateException: Binary XML file line #31: Error inflating class com.android.internal.widget.ActionBarContainer
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:633)
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
                                                                           at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3605)
                                                                           at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3677)
                                                                           at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:368)
                                                                           at android.app.Activity.setContentView(Activity.java:2145)
                                                                           at com.example.anders.ugym.MainActivity.onCreate(MainActivity.java:26)
                                                                           at android.app.Activity.performCreate(Activity.java:5990)
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                                                                           at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:135) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
                                                                        Caused by: java.lang.reflect.InvocationTargetException
                                                                           at java.lang.reflect.Constructor.newInstance(Native Method)
                                                                           at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:607)
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                                                                           at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3605) 
                                                                           at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3677) 
                                                                           at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:368) 
                                                                           at android.app.Activity.setContentView(Activity.java:2145) 
                                                                           at com.example.anders.ugym.MainActivity.onCreate(MainActivity.java:26) 
                                                                           at android.app.Activity.performCreate(Activity.java:5990) 
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                                                                           at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:135) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
                                                                        Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 13
                                                                           at android.content.res.TypedArray.getDrawable(TypedArray.java:747)
                                                                           at android.view.View.<init>(View.java:3737)
                                                                           at android.view.ViewGroup.<init>(ViewGroup.java:497)
                                                                           at android.widget.FrameLayout.<init>(FrameLayout.java:115)
                                                                           at android.widget.FrameLayout.<init>(FrameLayout.java:111)
                                                                           at android.widget.FrameLayout.<init>(FrameLayout.java:107)
                                                                           at com.android.internal.widget.ActionBarContainer.<init>(ActionBarContainer.java:60)
                                                                           at java.lang.reflect.Constructor.newInstance(Native Method) 
                                                                           at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                                                                           at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3605) 
                                                                           at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3677) 
                                                                           at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:368) 
                                                                           at android.app.Activity.setContentView(Activity.java:2145) 
                                                                           at com.example.anders.ugym.MainActivity.onCreate(MainActivity.java:26) 
                                                                           at android.app.Activity.performCreate(Activity.java:5990) 
                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                                                                           at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                           at android.os.Looper.loop(Looper.java:135) 
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Upvotes: 0

Views: 843

Answers (1)

Gili Yaniv
Gili Yaniv

Reputation: 3211

As mentioned in this post by Neel0507:

I had the same error, and here is how I dealt with it. In the styles.xml file, in the first "AppTheme" style put Base infront of Theme.AppCompat. So it would be "Base.Theme.AppCompat.Light.DarkActionBar".

After this, go to your "AndroidManifest" and in your activity do not use "AppBarOverlay". So it would be just "android:theme="@style/AppTheme".

Furthermore, in "AndroidManifest" remove "package name" from your activity name, and just use ".SettingsActivity".

If you have other activities then instead of defining AppTheme in each activity, just use android:parentActivityName=".SettingsActivity."

I know you want to have an action bar and removing AppBarOverlay could help. Let me know if it works.

Hopes it's helps..

Upvotes: 1

Related Questions