Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pag使用过程anr异常 #2530

Open
RayLiuLei opened this issue Oct 15, 2024 · 1 comment
Open

pag使用过程anr异常 #2530

RayLiuLei opened this issue Oct 15, 2024 · 1 comment
Assignees

Comments

@RayLiuLei
Copy link

【版本信息】

latest.release 最新版本

【平台信息】

Android 10

【预期的表现】

1、app首页有多个pag view需要轮换播放,其中一个用的网络url一直循环播放,其它的都是本地assets下的文件,其它的隔一段时间轮换播放,用的PAGView加载,pag文件都不大100k以内

2、另一个场景界面,多个按钮,一个PAGView,点击不同按钮加载不同的pag资源,都是网络资源,文件也都不大,50kb以内

【实际的情况】

上述场景使用过程会偶先anr,在两个场景来回快速切换,或者静置一段时间再操作,出现概率会提高

上述两种场景用PAGView还是PAGImageView更好,界面退出或者暂停的时候需不需要调用freeCache、stop或者其它释放方法

【Demo及附件】

网络加载用的是以下方式
lifecycleScope.launch(Dispatchers.IO) {
pag_ai.composition = PAGFile.Load(pagUrl)
withContext(Dispatchers.Main) {
pag_ai.play()
}
}
anr日志1
Input dispatching timed out

ANR Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 6. Wait queue head age: 6943.2ms.)

解析原始
1
org.libpag.PAGSurface.freeCache(Native method)
2
org.libpag.PAGSurface.release(SourceFile:1)
3
org.libpag.PAGView.onDetachedFromWindow(SourceFile:4)
4
android.view.View.dispatchDetachedFromWindow(View.java:19622)
5
android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3806)
6
android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3806)
7
android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3806)
8
android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:4158)
9
android.view.ViewRootImpl.doDie(ViewRootImpl.java:7163)
10
android.view.ViewRootImpl.die(ViewRootImpl.java:7140)
11
android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:490)
12
android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:428)
13
android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:126)
14
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5016)
15
android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:44)
16
android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
17
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
18
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2025)
19
com.wanjian.cockroach.Cockroach$2.handleMessage(Cockroach.java:129)
20
android.os.Handler.dispatchMessage(Handler.java:103)
21
android.os.Looper.loop(Looper.java:214)
22
android.app.ActivityThread.main(ActivityThread.java:7386)
23
java.lang.reflect.Method.invoke(Native method)
24
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
25
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1072)

日志2
org.libpag.DisplayLink.onUpdate(Native method)
2
org.libpag.DisplayLink.onAnimationUpdate(SourceFile:1)
3
android.animation.ValueAnimator.animateValue(ValueAnimator.java:1558)
4
android.animation.ValueAnimator.animateBasedOnTime(ValueAnimator.java:1349)
5
android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1481)
6
android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
7
android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
8
android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
9
android.view.Choreographer$CallbackRecord.run(Choreographer.java:1050)
10
android.view.Choreographer.doCallbacks(Choreographer.java:875)
11
android.view.Choreographer.doFrame(Choreographer.java:806)
12
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1037)
13
android.os.Handler.handleCallback(Handler.java:883)
14
android.os.Handler.dispatchMessage(Handler.java:100)
15
android.os.Looper.loop(Looper.java:214)
16
com.wanjian.cockroach.Cockroach.safeMode(Cockroach.java:216)
17
com.wanjian.cockroach.Cockroach.access$200(Cockroach.java:26)
18
com.wanjian.cockroach.Cockroach$1.uncaughtException(Cockroach.java:70)
19
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
20
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
21
java.lang.Thread.dispatchUncaughtException(Thread.java:2187)

日志3
executing service com.lingben.householdrb/.service.StatusBarService

ANR executing service com.lingben.householdrb/.service.StatusBarService

解析原始
1
org.libpag.PAGPlayer.prepare(Native method)
2
org.libpag.PAGView.play(SourceFile:1)
3
com.lingben.householdrb.activity.MyAiActivity$playAi$1$1.invokeSuspend(MyAiActivity.kt:210)
4
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
5
kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
6
android.os.Handler.handleCallback(Handler.java:883)
7
android.os.Handler.dispatchMessage(Handler.java:100)
8
android.os.Looper.loop(Looper.java:214)
9
com.wanjian.cockroach.Cockroach.safeMode(Cockroach.java:216)
10
com.wanjian.cockroach.Cockroach.access$200(Cockroach.java:26)
11
com.wanjian.cockroach.Cockroach$1.uncaughtException(Cockroach.java:70)
12
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
13
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
14
java.lang.Thread.dispatchUncaughtException(Thread.java:2187)

日志4
Input dispatching timed out

ANR Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 13. Wait queue head age: 6499.7ms.)

解析原始
1
org.libpag.PAGSurface.freeCache(Native method)
2
org.libpag.PAGView.freeCache(SourceFile:2)
3
com.lingben.householdrb.activity.MyAiActivity.onDestroy(MyAiActivity.kt:222)
4
android.app.Activity.performDestroy(Activity.java:8057)
5
android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1341)
6
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4950)
7
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4994)
8
android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:44)
9
android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
10
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
11
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2025)
12
com.wanjian.cockroach.Cockroach$2.handleMessage(Cockroach.java:129)
13
android.os.Handler.dispatchMessage(Handler.java:103)
14
android.os.Looper.loop(Looper.java:214)
15
android.app.ActivityThread.main(ActivityThread.java:7386)
16
java.lang.reflect.Method.invoke(Native method)
17
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
18
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1072)

@RayLiuLei
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants