求助~使用App Bundle发布后,从Google Play下载的apk,无法正常使用Agora

测试后发现,通过adb install-multiple 安装两个appbundle分开apk的话,如下的接口没有收到回调!
int attribute((visibility(“default”))) loadAgoraRtcEnginePlugin(agora::rtc::IRtcEngine* engine)
void attribute((visibility(“default”))) unloadAgoraRtcEnginePlugin(agora::rtc::IRtcEngine* engine)
请问可能是什么原因导致的?谢谢~

目前有两种情况 SDK libagora-crypto.so 会加载失败:

  1. 应用设置 android:extractNativeLibs=“false"时,加载so失败。应用不设置该属性时,默认为"true”,无加载问题。Android文档:extractNativeLibs
  • 该值true:应用打包时,so库是压缩存放于apk文件中,应用安装时,会将so解压到同级lib目录下,SDK libagora-crypto.so 加载正常。

  • 该值false: 应用打包时,so库是未压缩并且对齐存放在apk中,应用安装时,不解压so,SDK libagora-crypto.so dlopen加载失败,通过原生 System.loadlibrary 加载so库正常。
    该值虽然默认为true, 但Android推荐设为false,即不解压so库。参考:Avoid extracting native libraries

  1. 应用使用app bundle且使用gradle plugin 3.3.0,这些应用使用 libagora-crypto.so 均加载失败,失败原因同上述 extractNativeLibs。

目前的临时解决办法:

在gradle.properties中设置: android.bundle.enableUncompressedNativeLibs=false 。

感谢!非常详细!

不客气~