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

缺少 libpag.so #127

Closed
zhongbingrong opened this issue Feb 21, 2022 · 13 comments
Closed

缺少 libpag.so #127

zhongbingrong opened this issue Feb 21, 2022 · 13 comments
Assignees

Comments

@zhongbingrong
Copy link

Bug 描述

问题

请告诉我们你遇到了什么问题。预期是什么?实际表现是什么?
在SystemUI使用PAG实现充电动画,出现crash
02-21 12:09:35.745 27182 27182 I LibraryLoadUtils: loadLibrary libpag fail! Error: dlopen failed: library "liblibpag.so" not found
02-21 12:09:35.745 27182 27182 I LibraryLoadUtils: load fail! Error: dlopen failed: library "/data/user_de/0/com.android.systemui/lib/liblibpag.so" not found
02-21 12:09:35.747 27182 27182 E ndroid.systemu: No implementation found for void org.libpag.PAGPlayer.nativeInit() (tried Java_org_libpag_PAGPlayer_nativeInit and Java_org_libpag_PAGPlayer_nativeInit__)
02-21 12:09:35.747 27182 27182 D AndroidRuntime: Shutting down VM
02-21 12:09:35.748 27182 27182 E AndroidRuntime: FATAL EXCEPTION: main
02-21 12:09:35.748 27182 27182 E AndroidRuntime: Process: com.android.systemui, PID: 27182
02-21 12:09:35.748 27182 27182 E AndroidRuntime: java.lang.RuntimeException: Unable to create service com.android.systemui.keyguard.KeyguardService: android.view.InflateException: Binary XML file line #54 in com.android.systemui:layout/super_notification_shade: Binary XML file line #119 in com.android.systemui:layout/status_bar_expanded: Error inflating class org.libpag.PAGView

重现

请说明重现步骤。加载的是什么文件,你的代码是怎么写的,等等。
直接在layout添加<org.libpag.PAGView>
PAG 素材可以在压缩之后,随这个 Bug 上传。

环境

libpag 版本:libpag-ios(v3.2.4.37),libpag-android(v3.2.5.1),PAGViewer(2.1.33 beta)
设备:iPhone 7(iOS 12),OnePlus 7(Android 10),iMac 5K(macOS 10.15.3)

Demo(可选)

请给一个 Demo 项目,我们可以运行并重现这个问题。

其他(可选)

如果还有其他信息可以帮助我们定位问题,请添加其他内容。

@lvpengwei
Copy link
Collaborator

怎么依赖的 libpag?

@zhongbingrong
Copy link
Author

image

@zhongbingrong
Copy link
Author

怎么依赖的 libpag?

这个是Android 源码的引用,是在Android.bp里面引用。

@lvpengwei
Copy link
Collaborator

怎么依赖的 libpag?

这个是Android 源码的引用,是在Android.bp里面引用。

源码引入时,如果是 armeabi 架构的话,需要 copy 一下 so。

@zhongbingrong
Copy link
Author

aar和so都需要copy?

@lvpengwei
Copy link
Collaborator

@zhongbingrong
Copy link
Author

image

类似这里的写法

https://github.com/Tencent/libpag/blob/main/android/libpag/build.gradle#L67

在源码里面我不需要使用libpag使用ndk参与编译,如何把libpag.so copy到我的源码目录呢?在哪儿可以找到已经生成的libpag.so

@lvpengwei
Copy link
Collaborator

这个你要自己找下,每个项目的目录都不太一样。

你的项目是需要 armeabi 的 so 吧?如果不是就不用考虑这个 copy,可能是其他的问题。

@zhongbingrong
Copy link
Author

这个你要自己找下,每个项目的目录都不太一样。

你的项目是需要 armeabi 的 so 吧?如果不是就不用考虑这个 copy,可能是其他的问题。

./pag-android-master/pag-android-master/sample/app/build/intermediates/merged_native_libs/debug/out/lib/arm64-v8a/liblibpag.so
./pag-android-master/pag-android-master/sample/app/build/intermediates/merged_native_libs/debug/out/lib/armeabi/liblibpag.so
./pag-android-master/pag-android-master/sample/app/build/intermediates/merged_native_libs/debug/out/lib/armeabi-v7a/liblibpag.so

我看demo编译完成会自动生成libpag.so,是不是直接预置这个so就可以呀?

@lvpengwei
Copy link
Collaborator

嗯,这个 so 到时候会打包到 aar 里面去。

我们在做 so 下发的时候就是取的 aar 里面的 so 放服务器上。

@zhongbingrong
Copy link
Author

的时候就是取的 aar 里面的 so 放服务器上。

https://github.com/Tencent/libpag 哪边可以取到你们放的so

@lvpengwei
Copy link
Collaborator

你就拿 aar 里面的就行

@zhongbingrong
Copy link
Author

你就拿 aar 里面的就行

fNftmSilWL

实测这样写可以解决问题,谢谢支持~

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

3 participants