-
Notifications
You must be signed in to change notification settings - Fork 457
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 在一些机型上偶现Crash #789
Comments
这个堆栈没有有效信息,每个版本都有对应的obj符号包,https://github.com/Tencent/libpag/releases 下载符号包上传到你们crash堆栈的上报工具里,转换成可以阅读的堆栈信息才能看问题。 |
这个应该还是性能问题,pagview太多导致的,flush调用太多到handler |
发现 PAG V4.2.20 版本在 Android 7.1.1 上会闪退(Bugly 日志和设备信息如下) 注:Android 8 和 Android 8.1.0 及以上不会闪退
补充闪退日志如下(可确定在 Android 8.1 及以上正常,8.0 及以下会闪退):
补充闪退日志如下(可确定在 Android 8.1 及以上正常,8.0 及以下会闪退):
|
从日志上看,好像是Java方法没有找到的原因,你是不是接入使用的时候没有按照接入文档设置混淆的过滤?我们已经混淆了所有可以混淆的Java代码,业务上需要全部keep住剩下的Java类,否则C++反射都会失败。可以参考一下:https://github.com/Tencent/libpag/wiki/mobile-sdk-guide 使用规则跳过混淆: 另外还发现一个可疑的地方,你是自己修了 Java的代码吗?我们并不存在 at org.libpag.PAGFile.Load(SourceFile:2) 这个方法。 |
1、混淆是加了的,否则 Android 8.1 及以上的 release 包也会闪退。 org.libpag.PAGFile.Load(SourceFile:2)
// 对应:
public class PAGFile extends PAGComposition {
private static native PAGFile LoadFromBytes(byte[] var0, int var1);
} org.libpag.PAGFile.Load(SourceFile:3)
// 对应:
public class PAGFile extends PAGComposition {
private static native PAGFile LoadFromAssets(AssetManager var0, String var1);
} 可以在 Android 8.0.0 及以下版本的系统上复现的核心代码: // 1
pagView.setComposition(PAGFile.Load(rawBytes));
// 2
PAGFile pagFile = PAGFile.Load(context.getAssets(), "mo_matter_what_name.pag");
pagView.setComposition(pagFile); 特别说明:
|
Bitmap带Hardware的问题最新版本4.2的最新版本里已经修复过。你原本遇到的这个crash看起来比较大概率还是自定义封装造成的,因为基本没有其他业务反馈过在那个位置可能发生崩溃,而且从原版的代码review里也找不出来有可能crash的地方,除了混淆的问题,但是你也说这个可以排除。那建议是在安卓原生平台尝试一下看看是否能复现,可以排除是不是自己封装的组件的问题。 |
@domchen |
Bitmap 带 Hardware 的问题确实就是8.0以下才会遇到,符合问题的具体表现,你遇到的大概率就是这个问题。可能是之前的日志堆栈都没对上正确的函数符号,有点迷惑性。估计是用来解析符号的那个obj版本号和你实际运行的版本号可能不一致。否则不会解出来是loadFromBytes那个入口。 |
libpag 版本
libpag 4.1.43
平台
Android
分布平台
系统版本
crash日志栈
#79164049 SIGSEGV(SEGV_MAPERR)
1 #00 pc 000000000041df70 /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
2 2
3 #1 pc 0000000000415ca0 /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
4 3
5 #2 pc 0000000000414bf8 /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
6 4
7 #3 pc 0000000000416248 /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
8 5
9 #4 pc 00000000004163e0 /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
10 6
11 #5 pc 0000000000417d88 /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
12 7
13 #6 pc 0000000000608874 /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
14 8
15 #7 pc 0000000000607e8c /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
16 9
17 #8 pc 000000000060600c /system/lib64/egl/libGLES_mali.so [arm64-v8a::c49381dbe83bca18922ea39e468 8a6aa]
18 10
19 #9 pc 000000000018b6b8 /data/app/xxxxx/lib/arm64/libpag.so [arm64 -v8a::2211310c153d7a40eacb033fad1510f7]
20 11
21 #10 pc 000000000018b56c /data/app/xxxxx/lib/arm64/libpag.so [arm64 -v8a::2211310c153d7a40eacb033fad1510f7]
22 #11 pc 00000000001898c0 /data/app/xxxxx/lib/arm64/libpag.so [arm64 -v8a::2211310c153d7a40eacb033fad1510f7]
23 13
24 #12 pc 0000000000105eec /data/app/xxxxx/lib/arm64/libpag.so [arm64 -v8a::2211310c153d7a40eacb033fad1510f7]
25 14
26 #13 pc 00000000000f2a7c /data/app/xxxxx/lib/arm64/libpag.so [arm64 -v8a::2211310c153d7a40eacb033fad1510f7]
27 15
28 #14 pc 0000000000091d88 /data/app/xxxxx/lib/arm64/libpag.so (pag:: PAGSurface::draw(pag::RenderCache*, std::__ndk1::shared_ptrpag::Graphic, pag::BackendSemaphore* , bool)+456) [arm64-v8a::2211310c153d7a40eacb033fad1510f7]
29 16
22 #11 pc 00000000001898c0 /data/app/xxxxx/lib/arm64/libpag.so [arm64-v8a::2211310c153d7a40eacb033fad1 510f7]
23 13
24 #12 pc 0000000000105eec /data/app/xxxxx/lib/arm64/libpag.so [arm64-v8a::2211310c153d7a40eacb033fad1 510f7]
25 14
26 #13 pc 00000000000f2a7c /data/app/xxxxx/lib/arm64/libpag.so [arm64-v8a::2211310c153d7a40eacb033fad1 510f7]
27 15
28 #14 pc 0000000000091d88 /data/app/xxxxx/lib/arm64/libpag.so (pag::PAGSurface::draw(pag::RenderCache , std::__ndk1::shared_ptrpag::Graphic, pag::BackendSemaphore, bool)+456) [arm64-v8a::2211310c153d7a40eacb033fad1510f7]
29 16
30 #15 pc 00000000000900bc /data/app/xxxxx/lib/arm64/libpag.so (pag::PAGPlayer::flushInternal(pag::Bac kendSemaphore*)+208) [arm64-v8a::2211310c153d7a40eacb033fad1510f7]
31 17
32 #16 pc 000000000008ffb4 /data/app/xxxxx/lib/arm64/libpag.so (pag::PAGPlayer::flush()+88) [arm64-v8a ::2211310c153d7a40eacb033fad1510f7]
33 18
34 #17 pc 00000000000e8b18 /data/app/xxxxx/lib/arm64/libpag.so (Java_org_libpag_PAGPlayer_flushAndFenc eSync+204) [arm64-v8a::2211310c153d7a40eacb033fad1510f7]
35 19
36 #18 pc 0000000007cb2ef8 /data/app/xxxxx/oat/arm64/base.odex (oatexec+18996984) [arm64-v8a::dd8ea0e9 df29d7ae8de12e3653b91823]
37 20
38 java:
39 21
40 org.libpag.PAGPlayer.boolean flush()(PAGPlayer.java)
41 22
42 org.libpag.PAGView.boolean flush()(PAGView.java:814)
43 23
44 org.libpag.PAGView.void updateView()(PAGView.java:364)
45 24
46 org.libpag.PAGView.void access$000(org.libpag.PAGView)(PAGView.java)
47 25
48 org.libpag.PAGView$PAGViewHandler.void handleMessage(android.os.Message)(PAGView.java:170)
49 26
50 android.os.Handler.dispatchMessage(Handler.java:111)
51 27
52 android.os.Looper.loop(Looper.java:227)
53 28
54 android.os.HandlerThread.run(HandlerThread.java:61)
问题线程: pag-renderer(2085)
PAG File
未定位
The text was updated successfully, but these errors were encountered: