Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[AAB] Feature: Support AAB And extractNativeLibs=false
项目未配置 `useLegacyPackaging=true` 时, 使用AAB安装, 或最低版本为Android M以上的APK Native库不会从APK中解压, 参考: https://developer.android.com/guide/topics/manifest/application-element#extractNativeLibs google/bundletool#39 此时xCrash通过 `ctx.getApplicationInfo().nativeLibraryDir` 获取的目录内容是空的 因此会出现加载xcrash_dumper失败 而通过 PathClassloader.findLibrary(libName) 获取的路径是虚拟路径, 不是真实存在的 因此直接执行也会失败 此时我们参考 Crashpad 的逻辑, 使用linker加载 参考: https://github.com/chromium/crashpad/blob/main/client/crashpad_client_linux.cc#L114 为了避免大的改动, 默认仅在加载虚拟路径时使用linker, 实际上在所有场景都可以直接通过linker加载 支持外部自定义配置 ``` .setNativeLibPath() .setLoadNativeWithLinker() ``` 如果外部没有配置,内部会自动查找 参考: AbiPathProvider.java 逻辑
- Loading branch information