Firebaseui-android: Crash on Android 4.4

Created on 27 May 2016  路  15Comments  路  Source: firebase/FirebaseUI-Android

I got another crash, on a device running Android 4.4 (with Play Services 9.0.82) The crash happens when i launch the intent for the ui authorization flow (email only). The same code runs fine on other devices with Android 6.0.

Here the stacktrace:

java.lang.RuntimeException: Unable to start activity ComponentInfo{*/com.firebase.ui.auth.ui.email.SignInNoPasswordActivity}: android.view.InflateException: Binary XML file line #30: Error inflating class Button
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2412)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)
at android.app.ActivityThread.access$900(ActivityThread.java:174)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5593)
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:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #30: Error inflating class Button
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)
at com.firebase.ui.auth.ui.email.SignInNoPasswordActivity.onCreate(SignInNoPasswordActivity.java:44)
at android.app.Activity.performCreate(Activity.java:5458)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)聽
at android.app.ActivityThread.access$900(ActivityThread.java:174)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:146)聽
at android.app.ActivityThread.main(ActivityThread.java:5593)聽
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:1283)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)聽
at dalvik.system.NativeStart.main(Native Method)聽
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/rounded_button.xml from drawable resource ID #0x7f0200ba
at android.content.res.Resources.loadDrawable(Resources.java:3443)
at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
at android.view.View.(View.java:3694)
at android.widget.TextView.(TextView.java:913)
at android.widget.Button.(Button.java:108)
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:62)
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:58)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:105)
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:972)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1030)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:690)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)聽
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)聽
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)聽
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)聽
at com.firebase.ui.auth.ui.email.SignInNoPasswordActivity.onCreate(SignInNoPasswordActivity.java:44)聽
at android.app.Activity.performCreate(Activity.java:5458)聽
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)聽
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)聽
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)聽
at android.app.ActivityThread.access$900(ActivityThread.java:174)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:146)聽
at android.app.ActivityThread.main(ActivityThread.java:5593)聽
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:1283)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)聽
at dalvik.system.NativeStart.main(Native Method)聽
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
at android.content.res.TypedArray.getColor(TypedArray.java:327)
at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:970)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:186)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
at android.content.res.Resources.loadDrawable(Resources.java:3439)
at android.content.res.TypedArray.getDrawable(TypedArray.java:602)聽
at android.view.View.(View.java:3694)聽
at android.widget.TextView.(TextView.java:913)聽
at android.widget.Button.(Button.java:108)聽
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:62)聽
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:58)聽
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:105)聽
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:972)聽
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1030)聽
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)聽
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:690)聽
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)聽
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)聽
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)聽
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)聽
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)聽
at com.firebase.ui.auth.ui.email.SignInNoPasswordActivity.onCreate(SignInNoPasswordActivity.java:44)聽
at android.app.Activity.performCreate(Activity.java:5458)聽
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)聽
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)聽
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)聽
at android.app.ActivityThread.access$900(ActivityThread.java:174)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:146)聽
at android.app.ActivityThread.main(ActivityThread.java:5593)聽
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:1283)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)聽
at dalvik.system.NativeStart.main(Native Method)聽

fix-implemented bug

Most helpful comment

An easy workaround while the problem it's solved. It is adding this snippet to your style.xml

    <style name="FirebaseUI.Button" parent="@style/Widget.AppCompat.Button">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">right</item>
        <item name="android:layout_height">36dp</item>
        <item name="android:layout_margin">8dp</item>
        <item name="android:textColor">@color/buttonTextColor</item>
        <item name="android:textAllCaps">true</item>
        <item name="android:radius">3dp</item>
    </style>

This style is overwriting the default one provided by firebaseui auth style.xml file, actually I am removing the style <item ame="android:background">@drawable/rounded_button</item> because is causing problems for devices running API 21 and below.

if you want to keep the default style for devices running API 21 and above add a new res/values-v21/styles.xml

    <style name="FirebaseUI.Button" parent="@style/Widget.AppCompat.Button">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">right</item>
        <item name="android:layout_height">36dp</item>
        <item name="android:layout_margin">8dp</item>
        <item name="android:textColor">@color/buttonTextColor</item>
        <item name="android:textAllCaps">true</item>
        <item name="android:radius">3dp</item>
        <item name="android:background">@drawable/rounded_button</item>
    </style>

PS: you can have both style.xml is matching devices running below 21 and res/values-v21/styles.xml is matching devices running above 21+ API

All 15 comments

Hi @Fax3D, this seems to be the same issue as reported here: https://github.com/firebase/FirebaseUI-Android/issues/136.
In my opinion this is related to this bug: https://code.google.com/p/android/issues/detail?id=210467.

@Fax3D I believe @peterhav is right, so closing this issue. Please try the fixes described in #136.

Hi @samtstern, @peterhav, i'm sorry but i still have this issue even trying the fix in #136

  • com.android.tools.build:gradle:2.1.0
  • com.android.support:appcompat-v7:23.3.0
  • compileSdkVersion 23
  • buildToolsVersion "23.0.3"
  • minSdkVersion 16
  • targetSdkVersion 23

The issue appears only with a tablet running Android 4.4, on a Nexus 5 with Android 6.0.1 works fine.

Thanks.

Hi, I have the same issue in a tablet with Android 4.4 and the solution in #136 not work for me.

Same here. Fixes proposed in #136 does not fix it for me either :(

OK I found a device with 4.4 and reproduced this bug. It's something to do with the rounded_button.xml file. Will investigate.

Same issue here running on a device with 4.4.2, here is my stack trace:

FATAL EXCEPTION: main
Process: com.itpartners.turnos, PID: 10776
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.itpartners.turnos/com.firebase.ui.auth.ui.email.SignInActivity}: android.view.InflateException: Binary XML file line #65: Error inflating class Button
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5103)
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:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #65: Error inflating class Button
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
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 android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)
at com.firebase.ui.auth.ui.email.SignInActivity.onCreate(SignInActivity.java:54)
at android.app.Activity.performCreate(Activity.java:5275)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)聽
at android.app.ActivityThread.access$800(ActivityThread.java:139)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:136)聽
at android.app.ActivityThread.main(ActivityThread.java:5103)聽
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:790)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)聽
at dalvik.system.NativeStart.main(Native Method)聽
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/rounded_button.xml from drawable resource ID #0x7f0200a1
at android.content.res.Resources.loadDrawable(Resources.java:2136)
at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
at android.view.View.(View.java:3558)
at android.widget.TextView.(TextView.java:678)
at android.widget.Button.(Button.java:107)
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:62)
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:58)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:105)
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:972)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1030)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)聽
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 android.view.LayoutInflater.inflate(LayoutInflater.java:353)聽
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)聽
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)聽
at com.firebase.ui.auth.ui.email.SignInActivity.onCreate(SignInActivity.java:54)聽
at android.app.Activity.performCreate(Activity.java:5275)聽
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)聽
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166)聽
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)聽
at android.app.ActivityThread.access$800(ActivityThread.java:139)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:136)聽
at android.app.ActivityThread.main(ActivityThread.java:5103)聽
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:790)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)聽
at dalvik.system.NativeStart.main(Native Method)聽
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
at android.content.res.TypedArray.getColor(TypedArray.java:327)
at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:970)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:186)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
at android.content.res.Resources.loadDrawable(Resources.java:2132)
at android.content.res.TypedArray.getDrawable(TypedArray.java:602)聽
at android.view.View.(View.java:3558)聽
at android.widget.TextView.(TextView.java:678)聽
at android.widget.Button.(Button.java:107)聽
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:62)聽
at android.support.v7.widget.AppCompatButton.(AppCompatButton.java:58)聽
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:105)聽
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:972)聽
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1030)聽
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)聽
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684)聽
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)聽
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 android.view.LayoutInflater.inflate(LayoutInflater.java:353)聽
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)聽
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)聽
at com.firebase.ui.auth.ui.email.SignInActivity.onCreate(SignInActivity.java:54)聽
at android.app.Activity.performCreate(Activity.java:5275)聽
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)聽
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166)聽
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)聽
at android.app.ActivityThread.access$800(ActivityThread.java:139)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:136)聽
at android.app.ActivityThread.main(ActivityThread.java:5103)聽
at java.lang.reflect.Method.invokeNative(Native Method)聽
at java.lang.reflect.Method.invoke(Method.java:515)聽

I have the same issue I'm running 4.2.2, I downloaded the code I realised that the problem is in the rounded_button.xml in particular the values ?attr/colorControlHighlight, ?attr/colorButtonNormal and ?attr/colorControlActivated those values are only avaliable on API 21 or above

If you remove this line it will work <item ame="android:background">@drawable/rounded_button</item>

    <style name="FirebaseUI.Button" parent="@style/Widget.AppCompat.Button">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">right</item>
        <item name="android:layout_height">36dp</item>
        <item name="android:layout_margin">8dp</item>
        <item name="android:textColor">@color/buttonTextColor</item>
        <item name="android:textAllCaps">true</item>
        <item name="android:radius">3dp</item>
        <item name="android:background">@drawable/rounded_button</item>

    </style> 

@Amejia481 yep we have identified the problem and agree with that assessment. Working on a fix, thanks for your patience!

An easy workaround while the problem it's solved. It is adding this snippet to your style.xml

    <style name="FirebaseUI.Button" parent="@style/Widget.AppCompat.Button">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">right</item>
        <item name="android:layout_height">36dp</item>
        <item name="android:layout_margin">8dp</item>
        <item name="android:textColor">@color/buttonTextColor</item>
        <item name="android:textAllCaps">true</item>
        <item name="android:radius">3dp</item>
    </style>

This style is overwriting the default one provided by firebaseui auth style.xml file, actually I am removing the style <item ame="android:background">@drawable/rounded_button</item> because is causing problems for devices running API 21 and below.

if you want to keep the default style for devices running API 21 and above add a new res/values-v21/styles.xml

    <style name="FirebaseUI.Button" parent="@style/Widget.AppCompat.Button">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">right</item>
        <item name="android:layout_height">36dp</item>
        <item name="android:layout_margin">8dp</item>
        <item name="android:textColor">@color/buttonTextColor</item>
        <item name="android:textAllCaps">true</item>
        <item name="android:radius">3dp</item>
        <item name="android:background">@drawable/rounded_button</item>
    </style>

PS: you can have both style.xml is matching devices running below 21 and res/values-v21/styles.xml is matching devices running above 21+ API

I have the same issue, too. I'm running 4.3.
I tried to re-set style according to 'Amejia481' advice, and fixed it.
Thank you.

We had the same problems. Android Studio 2.2 Preview 4 fixed it today together with com.android.tools.build:gradle:2.2.0-alpha4

I had the same issue with Android 4.4.2.
I tried Android 2.2 Preview 5 with gradle:2.2.0-alpha5 but still not worked for me, and it solved by modifying style.yml referring to above comments.

This has been fixed on master and the fix will be rolled into the next release.

0.4.4 has been release!

Was this page helpful?
0 / 5 - 0 ratings