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

Android 4.3.47 setPathAsync NetworkOnMainThreadException #2220

Open
zengke328 opened this issue Mar 25, 2024 · 1 comment
Open

Android 4.3.47 setPathAsync NetworkOnMainThreadException #2220

zengke328 opened this issue Mar 25, 2024 · 1 comment
Assignees

Comments

@zengke328
Copy link

【版本信息】

4.3.47

【平台信息】

Android 原生

【预期的表现】

PAG加载不报错。

【实际的情况】

使用PAGImageView的setPathAsync()异步加载网络pag,加载成功后调用play()播放动画。
setPathAsync(url) { pagFile ->
post {
onComplete()
play()
}
}

但是在Firebase上有NetworkOnMainThreadException报错,如下:
Fatal Exception: android.os.NetworkOnMainThreadException:
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1605)
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)
at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
at java.net.InetAddress.getAllByName(InetAddress.java:1152)
at com.android.okhttp.Dns$1.lookup(Dns.java:41)
at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:178)
at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144)
at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:86)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:176)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)
at org.libpag.b.a(SourceFile:12)
at org.libpag.PAGFile.Load(SourceFile:2)
at org.libpag.PAGImageView.a(SourceFile:7)
at org.libpag.PAGImageView.f(SourceFile:4)
at org.libpag.PAGImageView.flush(SourceFile:2)
at org.libpag.PAGImageView.onAnimationUpdate(SourceFile:7)
at org.libpag.PAGAnimator.a(SourceFile:6)
at org.libpag.PAGImageView.play(SourceFile:1)
at com.oversea.commonmodule.widget.RawPagSmallImageView.loadPag$lambda$4$lambda$3(RawPagSmallImageView.kt:90)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:257)
at android.app.ActivityThread.main(ActivityThread.java:8220)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)

看了下流程,play()调用了animator.start(),触发了flush()操作,然后内部判断_composition为空又去网络重新下载,按理说setPathAsync返回成功肯定是资源文件已经有了。
image

【Demo及附件】

@zengke328
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