uni-app 应用使用某 SoLoader SDK版本可能导致64位设备崩溃 请更新到0.10.4或更高版本

发布于 1周前 作者 ionicwang 来自 Uni-App

uni-app 应用使用某 SoLoader SDK版本可能导致64位设备崩溃 请更新到0.10.4或更高版本

操作步骤:

  • 打包aab提交谷歌审核

预期结果:

  • 提交审核成功

实际结果:

  • 您的应用使用了某个 SoLoader SDK版本,可能会导致该应用在仅支持 64 位架构的设备上发生崩溃。为了解决此问题,请将 SoLoader SDK更新到 0.10.4 或更高版本。

bug描述:

  • 打包aab格式提交谷歌审核出现问题,hbd版本4.24,看到社区八月底已解决但是我在9月下旬提交的打包还是会报错,而且hbdx版本是最新版4.24

Image

信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX版本号 4.24
手机系统 Android
手机系统版本号 Android 15
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 CLI
CLI版本号 3.95

4 回复

有解决方案吗


已经更新到了最新版本 还是会出现这个错误

可能是cli编译版本没升级,看看编译版多少node_modules/@dcloudio/vite-plugin-uni/package.json-> uni-app -> compilerVersion,如果低于4.24升级一下

针对你提到的uni-app应用在64位设备上因使用旧版SoLoader SDK导致崩溃的问题,确实需要及时更新SoLoader库到0.10.4或更高版本以避免兼容性问题。以下是如何在uni-app项目中更新并集成SoLoader SDK的示例步骤和代码案例。

步骤 1: 更新SoLoader版本

首先,确保你的项目依赖管理文件中指定了正确版本的SoLoader。假设你使用的是npm进行依赖管理,可以通过修改package.json文件或直接运行npm命令来更新。

npm install soloader@0.10.4 --save
# 或者指定更高版本,如果0.10.4之后有更新
npm install soloader@latest --save

步骤 2: 配置原生插件(针对Android)

由于uni-app支持跨平台开发,但SoLoader主要影响的是Android平台,因此需要在Android原生层面进行配置。

  1. 将SoLoader库添加到Android项目中

    platforms/android/app/src/main/jniLibs目录下,确保有SoLoader所需的so文件(通常这些文件会自动由npm包管理)。

  2. 修改AndroidManifest.xml(如果需要)

    通常SoLoader不需要特别的权限声明,但检查并确认是否有必要的配置。

  3. MainActivity.java中初始化SoLoader

    打开platforms/android/app/src/main/java/com/yourpackage/MainActivity.java,并在onCreate方法中添加SoLoader的初始化代码:

    import com.facebook.soloader.SoLoader;
    
    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // 初始化SoLoader
            SoLoader.init(this, /* native exopackage */ false);
            // 其他初始化代码...
        }
    }
    

步骤 3: 验证更新

完成上述步骤后,重新编译并运行你的uni-app项目,确保在64位设备上进行测试以验证崩溃问题是否已被解决。

注意事项

  • 确保所有依赖库都兼容新版本SoLoader。
  • 如果在集成过程中遇到编译错误或运行时异常,检查SoLoader的官方文档或GitHub仓库的issue区获取帮助。
  • 对于iOS平台,SoLoader通常不是必需的,因为iOS不使用so文件,但确保其他原生依赖库也更新到兼容版本。

通过上述步骤,你应该能够成功将uni-app项目中的SoLoader SDK更新到0.10.4或更高版本,并解决64位设备上的崩溃问题。

回到顶部