When I used unity 2017.4.40c1 to develop an Android project, I received an anr problem report, but I don’t know how to solve these problems. It happens when the application starts and exits. How can I solve this problem.
waiting on <0x0f8a4f34> (a java.lang.Object)
at java.lang.Thread.parkFor$(Thread.java:2137)
locked <0x0f8a4f34> (a java.lang.Object)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1061)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1352)
at java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:415)
at com.unity3d.player.UnityPlayer.f(unavailable:-1)
at com.unity3d.player.UnityPlayer.pause(unavailable:-1)
at com.XST_test.XST_test.MyUnityPlayer.pause(MyUnityPlayer.java:40)
at com.qinggan.app.avatar.AvatarManager.pauseUnityView(AvatarManager.java:564)
at com.qinggan.app.avatar.AvatarManager$3.onFragmentPaused(AvatarManager.java:552)
at androidx.fragment.app.FragmentLifecycleCallbacksDispatcher.dispatchOnFragmentPaused(FragmentLifecycleCallbacksDispatcher.java:222)
at androidx.fragment.app.FragmentStateManager.pause(FragmentStateManager.java:630)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:314)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1636)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3112)
at androidx.fragment.app.FragmentManager.dispatchPause(FragmentManager.java:3074)
at androidx.fragment.app.FragmentController.dispatchPause(FragmentController.java:284)
at androidx.fragment.app.FragmentActivity.onPause(FragmentActivity.java:374)
at com.qinggan.app.launcher.activity.HomeActivity.onPause(HomeActivity.java:118)
at android.app.Activity.performPause(Activity.java:7167)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1409)
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3904)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3881)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3855)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3829)
at android.app.ActivityThread.-wrap15(ActivityThread.java:-1)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1604)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6518)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
The support for Unity 2017 and 2018 has ended. If this is a bug in Unity, it will no longer get fixed in those Unity versions.
ANR happens when the main java thread (UI thread) is unresponsive for a couple of seconds while the application is still running. Looking at the log which you’ve provided, it seems that you are trying to pause Unity player, but it is apparently done incorrectly.