material-components / material-components-android

Modular and customizable Material Design UI components for Android
Apache License 2.0
16.35k stars 3.06k forks source link

Material Android Components are crashing in debug mode #1877

Closed Arunachalamkalimuthu closed 2 years ago

Arunachalamkalimuthu commented 3 years ago

Description: I didn't make any changes to my code.

This issue is reproducing for both 4.1.1 and 4.4.0 Gradle versions

App crashing in debug mode but working fine in Release mode.

I tried reinstalling the android studio Nothing helps me

Android API version: Android API version Android 11 (30 )

Material Library version: com.google.android.material:material:1.2.1

Device: Pixel 3a

wcshi commented 3 years ago

Could you please share a stacktrace or any information about the crash?

Does the 1.2.1 lib not crash if you switch to an older Gradle version?

Arunachalamkalimuthu commented 3 years ago

Please check the logs

@wcshi

android.view.InflateException: Binary XML file line #38 in com.rizek.android.users.test:layout/activity_dashboard: Binary XML file line #38 in com.rizek.android.users.test:layout/activity_dashboard: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: android.view.InflateException: Binary XML file line #38 in com.rizek.android.users.test:layout/activity_dashboard: Binary XML file line #38 in com.rizek.android.users.test:layout/activity_dashboard: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView Caused by: android.view.InflateException: Binary XML file line #38 in com.rizek.android.users.test:layout/activity_dashboard: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:852) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082) at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082) at android.view.LayoutInflater.inflate(LayoutInflater.java:680) at android.view.LayoutInflater.inflate(LayoutInflater.java:532) at android.view.LayoutInflater.inflate(LayoutInflater.java:479) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170) at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:303) at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284) at com.rizek.android.users.base.BaseActivity.performDataBinding(BaseActivity.kt:370) at com.rizek.android.users.base.BaseActivity.onCreate(BaseActivity.kt:223) at com.rizek.android.users.ui.dashboard.DashboardActivity.onCreate(DashboardActivity.kt:79) at android.app.Activity.performCreate(Activity.java:8000) at android.app.Activity.performCreate(Activity.java:7984) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 2020-11-18 13:36:59.578 7372-7372/com.rizek.android.users.test E/AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setImportantForAccessibility(int)' on a null object reference at androidx.core.view.ViewCompat.setImportantForAccessibility(ViewCompat.java:1119) at com.google.android.material.bottomnavigation.BottomNavigationItemView.<init>(BottomNavigationItemView.java:104) at com.google.android.material.bottomnavigation.BottomNavigationItemView.<init>(BottomNavigationItemView.java:87) at com.google.android.material.bottomnavigation.BottomNavigationItemView.<init>(BottomNavigationItemView.java:83) at com.google.android.material.bottomnavigation.BottomNavigationMenuView.getNewItem(BottomNavigationMenuView.java:606) at com.google.android.material.bottomnavigation.BottomNavigationMenuView.buildMenuView(BottomNavigationMenuView.java:538) at com.google.android.material.bottomnavigation.BottomNavigationPresenter.updateMenuView(BottomNavigationPresenter.java:67) at com.google.android.material.bottomnavigation.BottomNavigationView.inflateMenu(BottomNavigationView.java:344) at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:226) at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:133) ... 34 more

Arunachalamkalimuthu commented 3 years ago

@wcshi Please check the screen video

https://www.loom.com/share/e2347984737d4988b257a584ada13acb

Arunachalamkalimuthu commented 3 years ago

@wcshi Reproducing for all Material components Bottom sheet dialog, Bottom navigation view

Arunachalamkalimuthu commented 3 years ago

@wcshi ``` java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.google.android.material.bottomsheet.BottomSheetDialog.wrapInBottomSheet(BottomSheetDialog.java:216) at com.google.android.material.bottomsheet.BottomSheetDialog.setContentView(BottomSheetDialog.java:93) at androidx.fragment.app.DialogFragment.onActivityCreated(DialogFragment.java:504) at com.rizek.android.users.views.bottomsheet.ExpandedBottomSheetFragment.onActivityCreated(ExpandedBottomSheetFragment.kt:28) at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2718) at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1200) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1368) at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1446) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1509) at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447) at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2181) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2004) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1959) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1861) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2641) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2589) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:210) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8024) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

wcshi commented 3 years ago

Can you reproduce the app in a sample app and share with us?

Arunachalamkalimuthu commented 3 years ago

@wcshi Very hard to reproduce

Arunachalamkalimuthu commented 3 years ago

In a big project When we switch from one branch to another ..This issue is happening..

Very time I will do sync with Gradle files and invalidate the cache

Out 1/5 times it will work

drchen commented 2 years ago

Is this still an issue?

mwshubham commented 2 years ago

This is still happening on latest enviroment.

drchen commented 2 years ago

@mwshubham can you paste your stack trace? Is it the same crash?

mwshubham commented 2 years ago

This is mostly happening in Dialogs. This is happening randomly so there are no steps to reproduce it. Although, the clean rebuild is fixing this.

1)

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.google.android.material.bottomsheet.BottomSheetDialog.wrapInBottomSheet(BottomSheetDialog.java:216) at com.google.android.material.bottomsheet.BottomSheetDialog.setContentView(BottomSheetDialog.java:93) at com.doubtnutapp.utils.AdminOptionsDialog.onCreateDialog(AdminOptionsDialog.kt:48) at androidx.fragment.app.DialogFragment.prepareDialog(DialogFragment.java:644) at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:558) at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1654) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:493) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002) at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:201) at android.app.ActivityThread.main(ActivityThread.java:6810) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

2)

   Fatal Exception: java.lang.NullPointerException: loginPinView must not be null
   at com.doubtnutapp.login.loginv3.LoginPinDialogFragment.onViewCreated(LoginPinDialogFragment.kt:70)
   at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:2987)
   at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:546)
   at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
   at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
   at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
   at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
   at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
   at android.os.Handler.handleCallback(Handler.java:883)
   at android.os.Handler.dispatchMessage(Handler.java:100)
   at android.os.Looper.loop(Looper.java:224)
   at android.app.ActivityThread.main(ActivityThread.java:7561)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)
drchen commented 2 years ago

Cool thanks for the info. I'll take a look.

drchen commented 2 years ago

Hi I checked the relevant code - if a clean rebuild can fix the issue, it doesn't seem like something we are able to solve in the library. (The possible causes I can think of should crash both release and debug builds.)

I'll close the issue for now since it doesn't affect release and can be solved. : )