flush引发的anr问题

Aperta
#3,147 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@CodeJhF ci sta già lavorando.

Dal 14/7/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

[

【版本信息】[

](https://github.com/Tencent/libpag/issues)
4.2.100

【平台信息】

Android 原生

【预期的表现】

加载pag后,能正常显示第一帧画面

【实际的情况】

引发了线上个别用户ANR
0 ANR_EXCEPTION: 1 org.libpag.PAGPlayer.flushAndFenceSync(Native Method) 2 org.libpag.PAGPlayer.flush(Unknown Source:1) 3 org.libpag.PAGView.flush(SourceFile:4) 4 cn.kuwo.ui.nowplay.widget.KwPAGView.flush(SourceFile:4)

测试发现,flush回调回触发2次

【Demo及附件】

线上问题引发代码:
pagFile.replaceImage(replaceIndex, PAGImage.FromBitmap(squareBitmap)) mPagView.composition = pagFile mPagView.progress = 0.1 mPagView.setRepeatCount(0) mPagView.setScaleMode(PAGScaleMode.Zoom) mPagView.flush()

后以为是调用progress和flush造成两次flush的冲突anr,改代码如下:
if(rid == mLastRid){ LogMgr.d("setCoverBitmap","SquareCoverShadowDelegate setCoverBitmap rid:$rid isSameRid") return } mLastRid = rid pagFile?.replaceImage(replaceIndex, PAGImage.FromBitmap(squareBitmap)) mPagView.composition = pagFile LogMgr.d("setCoverBitmap","SquareCoverShadowDelegate setCoverBitmap rid:$rid success ${mPagView}")

测试发现,flush和animtionupdate回调,还是会触发2次。

](https://github.com/Tencent/libpag/issues)
Lingua principale
HTML
Stelle
5.8k
Fork
533
Merge medio
3g 1h
PR unite (30g)
28

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Tencent/libpag

Tutte le issue di Tencent/libpag

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.