4

I have no idea about this error. I got these mesaage from google developer console. Some devices like z3, htc m8 ,m9 can't execute my app. Could someone give me some hint about the error?

Stacktrace :

java.lang.RuntimeException: Unable to start activity ComponentInfo{package name/package name.SettingsActivity}: android.view.InflateException: Binary XML file line #31: Error inflating class com.android.internal.widget.ActionBarContainer
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2499)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2563)
    at android.app.ActivityThread.access$800(ActivityThread.java:162)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1438)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:209)
    at android.app.ActivityThread.main(ActivityThread.java:5900)
    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:1005)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:800)
    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:3659)
    at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3755)
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:403)
    at android.app.Activity.setContentView(Activity.java:2174)
    at android.preference.PreferenceActivity.onCreate(PreferenceActivity.java:553)
    at pavkage name.SettingsActivity.onCreate(Unknown Source)
    at android.app.Activity.performCreate(Activity.java:5981)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1124)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2452)
    ... 10 more
    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)
    ... 24 more
    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:3785)
    at android.view.ViewGroup.<init>(ViewGroup.java:513)
    at android.widget.FrameLayout.<init>(FrameLayout.java:128)
    at android.widget.FrameLayout.<init>(FrameLayout.java:124)
    at android.widget.FrameLayout.<init>(FrameLayout.java:119)
    at com.android.internal.widget.ActionBarContainer.<init>(ActionBarContainer.java:61)
    ... 27 more

styles.xml

<!-- 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">true</item>
    <item name="windowNoTitle">true</item>
</style>

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

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>

AndroidManifest.xml

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

    <activity
        android:name="package name.SettingsActivity"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:theme="@style/AppTheme.AppBarOverlay">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

xml

    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="@string/pref_general_category">
        <SeekBarPreference
            android:defaultValue="10"
            android:key="@string/PrefResetWhistleIntervalKey"
            android:summary="@string/pref_reset_whistle_interval"
            android:title="@string/pref_title_reset_whistle_interval"/>
        <SeekBarPreference
            android:defaultValue="10"
            android:key="@string/PrefWhistleAmountKey"
            android:summary="@string/pref_whistle_count"
            android:title="@string/pref_title_whistle_count"/>
        <SeekBarPreference
            android:key="@string/PrefVolumeKey"
            android:summary="@string/pref_alarm_volume"
            android:title="@string/pref_title_alarm_volume"/>
        <SwitchPreference
            android:defaultValue="false"
            android:key="@string/PrefMediaPlayerLoopKey"
            android:summary="@string/pref_mediaplay_loop"
            android:title="@string/pref_title_mediaplay_loop"/>
        <Preference
            android:clickable="false"
            android:editable="false"
            android:enabled="true"
            android:key="@string/PrefChooseAudioKey"
            android:selectable="true"
            android:summary=""
            android:title="@string/pref_title_choose_media"/>
    </PreferenceCategory>
    <PreferenceCategory android:title="@string/pref_battery_save_category">
        <ListPreference
            android:defaultValue="@string/pref_sensitivity_default_value"
            android:dialogTitle="@string/pref_title_sensitivity"
            android:entries="@array/array_sensitivity_item"
            android:entryValues="@array/array_sensitivity_value"
            android:key="@string/PrefSensitivityKey"
            android:summary="@string/pref_sensitivity"
            android:title="@string/pref_title_sensitivity"/>
    </PreferenceCategory>
        <PreferenceCategory android:title="@string/pref_system_category">
            <SwitchPreference
                android:defaultValue="true"
                android:key="@string/PrefEnableServiceKey"
                android:summary="@string/pref_service_on_off"
                android:title="@string/pref_title_service_on_off"/>
            <SwitchPreference
                android:defaultValue="true"
                android:key="@string/PrefEnableBootServiceKey"
                android:summary="@string/pref_start_service_ono_ff"
                android:title="@string/pref_title_start_service_on_off"/>
    </PreferenceCategory>
    <PreferenceCategory android:title="@string/testMode">
        <Preference
            android:clickable="false"
            android:editable="false"
            android:enabled="true"
            android:key="@string/PrefTestModeKey"
            android:selectable="true"
            android:summary="@string/pref_test_mode"
            android:title="@string/pref_title_test_mode"/>
    </PreferenceCategory>
</PreferenceScreen>

seekbarpreference taken from http://robobunny.com/blog_files/android_seekbar_preference/SeekBarPreference.java

Peiting Shih
  • 43
  • 1
  • 4

2 Answers2

10

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.

Neel0507
  • 1,094
  • 2
  • 11
  • 18
  • It works. But the activity has no actionbar. That's ok, it's good enough. But why? – Peiting Shih Jan 03 '16 at 11:38
  • Go to your "SettingsActivity" layout resource file (not "AndroidManifest.xml") and inside the tag put this: android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar". So it would look like this: . I do not know much about preferencescreen, however, I am assuming that it is the parent layout in your layout resource file. Let me know if it works. – Neel0507 Jan 03 '16 at 13:39
  • If the answer above which I posted in the comment doesn't work then remove ""android:theme="@style/AppTheme" from your androidmanifest's activity. – Neel0507 Jan 03 '16 at 14:51
  • Had the same issue when trying to build a .. Widget – maugch Jul 21 '18 at 22:25
-1

extend class with AppCompatActivity instead of Activity it will give you the action bar

morex
  • 99
  • 1
  • 12