honhon
V2EX  ›  Android

一个奇怪的 Java .lang.UnsatisfiedLinkError 异常 异常描述为找不到 libyuv.so

  •  
  •   honhon · Sep 29, 2021 · 14715 views
    This topic created in 1866 days ago, the information mentioned may be changed or developed.
    这是堆栈信息
    java.lang.Runtime.loadLibrary0(Runtime.java:1011)
    java.lang.System.loadLibrary(System.java:1657)
    a.a.a.a.<clinit>(SrsEncoder.java:370)
    a.a.a.b.onReceive(Unknown Source:20)
    android.app.LoadedApk$ReceiverDispatcher$Args.lambda$-android_app_LoadedApk$ReceiverDispatcher$Args_53617(LoadedApk.java:1339)
    android.app.-$Lambda$aS31cHIhRx41653CMnd4gZqshIQ.$m$7(Unknown Source:4)
    android.app.-$Lambda$aS31cHIhRx41653CMnd4gZqshIQ.run(Unknown Source:39)
    android.os.Handler.handleCallback(Handler.java:790)
    android.os.Handler.dispatchMessage(Handler.java:99)
    android.os.Looper.loop(Looper.java:192)
    android.app.ActivityThread.main(ActivityThread.java:6896)
    java.lang.reflect.Method.invoke(Native Method)
    com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
    com.android.internal.os.ZygoteInit.main(ZygoteInit.java:875)

    经判断此调用栈未动态注册广播的回调,但是怎么也找不到 a.a.a.b 这个类在哪里,反编译和各种方式分析 apk 没有发现。
    请大佬们救救孩子
    23 replies  •  2021-09-30 10:06:34 +08:00
    zhanlanhuizhang
    zhanlanhuizhang
    Sep 29, 2021
    1
    反编译看看是否存在
    honhon
    honhon
    OP
    Sep 29, 2021
    2
    @zhanlanhuizhang 已经反编译查看过,并没有找到该类
    FATEQiang
    FATEQiang
    Sep 29, 2021
    3
    有可能就是 so 没有被 load 呀,解压 apk 看 so 在里面没有,还有就是编译 so 的选择的架构平台是否支持
    honhon
    honhon
    OP
    Sep 29, 2021
    4
    我现在非常想找到这个 a.a.a.b 的类在哪里,他什么时候注册的
    honhon
    honhon
    OP
    Sep 29, 2021
    5
    @FATEQiang so 不是关键,关键是他是在什么时候调用的
    honhon
    honhon
    OP
    Sep 29, 2021
    6
    不知大家是否熟悉 libyuv.so 这个库
    yorek
    yorek
    Sep 29, 2021 via iPhone
    7
    你把编译时的 mapping 文件找出来,在里面搜 a.a.a.b 看他混淆前是个啥
    honhon
    honhon
    OP
    Sep 29, 2021
    8
    @yorek 没有开启混淆
    honhon
    honhon
    OP
    Sep 29, 2021
    9
    持续等大佬们指教
    crayygy
    crayygy
    Sep 29, 2021
    10
    libyuv 是做颜色空间转换的,你的 app 或者是 SDK 有用到这个 lib 吗?
    这里你能看到的 a.a.a.a 这类消息肯定是被混淆过了,需要编译的时候对应的编译产出的 mapping 文件才能解析的出来。
    至于混淆开没开,看一下 proguard 文件。
    honhon
    honhon
    OP
    Sep 29, 2021
    11
    @crayygy app 没有混淆 a.a.a.a 这个类是可以在 sdk 中找到的,但是没有找到 a.a.a.a 的调用地方
    yorek
    yorek
    Sep 29, 2021 via iPhone
    12
    @honhon 那应该是已经混淆后的三方库引入的,解包看看 manifest,确认这个广播是静态注册还是动态注册。如果是静态注册,查下 menifest merge 日志文件,动态注册的话编译期用插件扫描 API 调用吧。
    honhon
    honhon
    OP
    Sep 29, 2021
    13
    @yorek 推断是动态注册,静态注册的调用栈不是这样的
    crayygy
    crayygy
    Sep 29, 2021
    14
    唯一有用的信息是这个
    a.a.a.a.<clinit>(SrsEncoder.java:370)
    a.a.a.b.onReceive(Unknown Source:20)

    这里的 SrsEncoder 看起来也的确像是可能用到 libyuv 的地方,做视频编码的时候需要做 rgb to yuv 。
    这个类是你的 SDK 里面带的吗? 一般如果是 SDK 的话,这个 so 应该已经被打包在里面了,除非你用的 armeabi-v7a 的 sdk,然后自己编译安装的版本又是一个 armabi-v8a 的版本。 这个就得看 SDK 的配置文件和你 APK 里面具体的文件了。
    yorek
    yorek
    Sep 29, 2021 via iPhone
    15
    @honhon #11 楼 看调用栈是在 aaab 这个广播的 onReceive 方法中,通过 SrsEncoder 这个类型间接调用。得查下 SrsEncoder
    yorek
    yorek
    Sep 29, 2021
    16
    @honhon 你们有配置 ndkFilter 仅仅为 armeabi 吗 这也有可能出现这种问题 一般三方 SDK 只会提供了 v7 v8 两种
    honhon
    honhon
    OP
    Sep 29, 2021
    17
    @yorek 现在情况是 a.a.a.a 这个类反编译能找到,a.a.a.b 反编译没有发现,插件扫描的方式可以指导一下么?或者推荐一下插件,感谢
    honhon
    honhon
    OP
    Sep 29, 2021
    18
    @yorek SrsEncoder 没有注册广播操作
    essicaj
    essicaj
    PRO
    Sep 29, 2021
    19
    可以把 apk 包抛出来让大家帮你看看
    kekxv
    kekxv
    Sep 29, 2021 via iPhone
    20
    就不能下断点吗?
    honhon
    honhon
    OP
    Sep 30, 2021
    21
    @kekxv 问题不能重现,错误日志在 bugly 查看的
    honhon
    honhon
    OP
    Sep 30, 2021
    22
    @essicaj apk 是公司内部系统,不太方便
    zhanlanhuizhang
    zhanlanhuizhang
    Sep 30, 2021
    23
    那么是不是混淆了。还有 libyuv.so 找不到,是不是,你打的包,硬件选择的是 v7a,v8a 。可能没有相应的文件。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1618 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 14:17 · PVG 22:17 · LAX 06:17 · JFK 09:17
    ♥ Do have faith in what you're doing.