I have been getting errors in my app. I checked the firebase crashlytics and the stacktrace tells me that there is an error inflating the radiobutton. The hard part is that this is impacting a very low number of users (only 5 - 6 users out of 7k). The phone models are: vivo 1724
and Xiaomi
. I have tried running my app on several devices ( about 10 - 12 devices; low-end to high range models) but couldn't emulate the crash.
Here's the crash log:
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{.HomeActivity}: android.view.InflateException: Binary XML file line #13: Binary XML file line #749: Error inflating class RadioButton
at android.app.ActivityThread.performLaunchActivity + 2946(ActivityThread.java:2946)
at android.app.ActivityThread.handleLaunchActivity + 3024(ActivityThread.java:3024)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage + 1725(ActivityThread.java:1725)
at android.os.Handler.dispatchMessage + 106(Handler.java:106)
at android.os.Looper.loop + 192(Looper.java:192)
at android.app.ActivityThread.main + 6760(ActivityThread.java:6760)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 438(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main + 826(ZygoteInit.java:826)
And I also have this crash log:
Caused by android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f080074
at android.content.res.ResourcesImpl.getResourceName + 287(ResourcesImpl.java:287)
at android.content.res.ResourcesImpl.loadDrawableForCookie + 884(ResourcesImpl.java:884)
at android.content.res.ResourcesImpl.loadDrawable + 754(ResourcesImpl.java:754)
at android.content.res.Resources.loadDrawable + 922(Resources.java:922)
at android.content.res.TypedArray.getDrawableForDensity + 953(TypedArray.java:953)
at android.content.res.TypedArray.getDrawable + 928(TypedArray.java:928)
at android.widget.TextView.<init> + 1077(TextView.java:1077)
at android.widget.Button.<init> + 166(Button.java:166)
at android.widget.CompoundButton.<init> + 94(CompoundButton.java:94)
at android.widget.RadioButton.<init> + 63(RadioButton.java:63)
at android.widget.RadioButton.<init> + 59(RadioButton.java:59)
at android.support.v7.widget.AppCompatRadioButton.<init> + 4(AppCompatRadioButton.java:4)
at android.support.v7.widget.AppCompatRadioButton.<init> + 2(AppCompatRadioButton.java:2)
at android.support.v7.app.AppCompatViewInflater.createRadioButton + 2(AppCompatViewInflater.java:2)
at android.support.v7.app.AppCompatViewInflater.createView + 204(AppCompatViewInflater.java:204)
at android.support.v7.app.AppCompatDelegateImpl.a + 140(AppCompatDelegateImpl.java:140)
at android.support.v7.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java)
at android.view.LayoutInflater.createViewFromTag + 817(LayoutInflater.java:817)
at android.view.LayoutInflater.createViewFromTag + 775(LayoutInflater.java:775)
at android.view.LayoutInflater.rInflate + 908(LayoutInflater.java:908)
at android.view.LayoutInflater.rInflateChildren + 869(LayoutInflater.java:869)
at android.view.LayoutInflater.rInflate + 911(LayoutInflater.java:911)
at android.view.LayoutInflater.rInflateChildren + 869(LayoutInflater.java:869)
at android.view.LayoutInflater.rInflate + 911(LayoutInflater.java:911)
at android.view.LayoutInflater.rInflateChildren + 869(LayoutInflater.java:869)
at android.view.LayoutInflater.rInflate + 911(LayoutInflater.java:911)
at android.view.LayoutInflater.rInflateChildren + 869(LayoutInflater.java:869)
at android.view.LayoutInflater.parseInclude + 1040(LayoutInflater.java:1040)
at android.view.LayoutInflater.rInflate + 904(LayoutInflater.java:904)
at android.view.LayoutInflater.rInflateChildren + 869(LayoutInflater.java:869)
at android.view.LayoutInflater.inflate + 521(LayoutInflater.java:521)
at android.view.LayoutInflater.inflate + 429(LayoutInflater.java:429)
at android.view.LayoutInflater.inflate + 380(LayoutInflater.java:380)
at android.support.v7.app.AppCompatDelegateImpl.c + 23(AppCompatDelegateImpl.java:23)
at android.support.v7.app.AppCompatActivity.setContentView + 4(AppCompatActivity.java:4)
at org.makkhay.makkhayDic.Controller.HomeActivity.onCreate + 9(HomeActivity.java:9)
at android.app.Activity.performCreate + 7115(Activity.java:7115)
at android.app.Activity.performCreate + 7106(Activity.java:7106)
at android.app.Instrumentation.callActivityOnCreate + 1220(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity + 2899(ActivityThread.java:2899)
at android.app.ActivityThread.handleLaunchActivity + 3024(ActivityThread.java:3024)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage + 1725(ActivityThread.java:1725)
at android.os.Handler.dispatchMessage + 106(Handler.java:106)
at android.os.Looper.loop + 192(Looper.java:192)
at android.app.ActivityThread.main + 6760(ActivityThread.java:6760)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 438(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main + 826(ZygoteInit.java:826)
Anyway here is my xml file:
<LinearLayout
android:layout_width="0dp"
android:layout_height="58dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/my_collection_rb"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:checked="false"
android:drawableTop="@drawable/baseline_book_white_36dp"
android:gravity="center"
android:padding="8dp"
android:drawablePadding="2dp"
android:text="@string/collection"
android:textColor="@color/colorWhite"
android:textSize="12sp" />
<RadioButton
android:id="@+id/game"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:checked="false"
android:drawableTop="@drawable/baseline_games_white_36dp"
android:gravity="center"
android:orientation="horizontal"
android:padding="8dp"
android:drawablePadding="2dp"
android:text="@string/game"
android:textColor="@color/colorWhite"
android:textSize="12sp" />
<RadioButton
android:id="@+id/chatRB"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:checked="false"
android:drawableTop="@drawable/baseline_chat_white_36dp"
android:gravity="center"
android:padding="8dp"
android:drawablePadding="2dp"
android:text="@string/chat"
android:textColor="@color/colorWhite"
android:textSize="12sp"
/>
<RadioButton
android:id="@+id/scanCamera"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:checked="false"
android:drawableTop="@drawable/baseline_account_circle_white_36dp"
android:gravity="center"
android:padding="8dp"
android:drawablePadding="2dp"
android:text="@string/profile"
android:textColor="@color/colorWhite"
android:textSize="12sp" />
</RadioGroup>
</LinearLayout>
Inside my onCreate
I have this code for initialization and listeners.
radioGroup1 = (RadioGroup) findViewById(R.id.radioGroup1);
chatButton = (RadioButton) findViewById(R.id.chatRB);
radioGroup1.setOnCheckedChangeListener((group, checkedId) -> {
Intent in;
switch (checkedId) {
case R.id.game:
gameButton.setChecked(false);
break;
}
}
Thanks in advance. :)