ANR (Application Not Responding) has been caught up in our Android App, where the main thread waited for too long causing the ANR. This has occurred multiple time.
Attaching the stack trace for reference -:
`main (native):tid=1 systid=12526
00 pc 0x9c3d6 libc.so (syscall + 22)
01 pc 0x20bcae libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*) + 110)
02 pc 0x46fae7 libart.so (art::JNI::GetObjectArrayElement(_JNIEnv, _jobjectArray, int) + 519)
03 pc 0xa87 libtoolChecker.so (Java_com_scottyab_rootbeer_RootBeerNative_checkForRoot + 151)
at com.scottyab.rootbeer.RootBeerNative.checkForRoot(RootBeerNative.java)
at com.scottyab.rootbeer.RootBeer.checkForRootNative(RootBeer.java:459)
at com.scottyab.rootbeer.RootBeer.isRooted(RootBeer.java:46)
at com.zscaler.retrievers.DeviceInfoRetriever.isRooted(DeviceInfoRetriever.java:94)
at com.zscaler.retrievers.DeviceInfoRetriever.<init>(DeviceInfoRetriever.java:70)
at com.zscaler.retrievers.DeviceInfoRetriever.getInstance(DeviceInfoRetriever.java:83)
at com.zscaler.fragments.WebSecurityFragment.populateValues(WebSecurityFragment.java:139)
at com.zscaler.fragments.WebSecurityFragment.updateUI(WebSecurityFragment.java:239)
at com.zscaler.fragments.WebSecurityFragment.onCreateView(WebSecurityFragment.java:91)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3104)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:524)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1890)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1808)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1751)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2976)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2886)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:351)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
at com.zscaler.activities.MainActivity.onStart(MainActivity.java:675)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1453)
at android.app.Activity.performStart(Activity.java:8034)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3486)
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:2077)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7741)
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:966)`
The device on which it has occurred is a Android 11 Intel Gemini Lake Chromebook
You can also call each of the checks individually as the sample app does. It is advisable to call isRooted() from a background thread as it involves disk I/O.
ANR (Application Not Responding) has been caught up in our Android App, where the main thread waited for too long causing the ANR. This has occurred multiple time.
Attaching the stack trace for reference -: `main (native):tid=1 systid=12526
00 pc 0x9c3d6 libc.so (syscall + 22)
01 pc 0x20bcae libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*) + 110)
02 pc 0x46fae7 libart.so (art::JNI::GetObjectArrayElement(_JNIEnv, _jobjectArray, int) + 519)
03 pc 0xa87 libtoolChecker.so (Java_com_scottyab_rootbeer_RootBeerNative_checkForRoot + 151)