android APP 离线打包 uni-app Uncaught TypeError Cannot read property invokeSync of undefined

android APP 离线打包 uni-app Uncaught TypeError Cannot read property invokeSync of undefined

开发环境 版本号 项目创建方式
Windows win11 HBuilderX

产品分类:
uniapp/App

PC开发环境操作系统:
Windows

HBuilderX类型:
正式

HBuilderX版本号:
4.75

手机系统:
Android

手机系统版本号:
Android 13

手机机型:
android 13

页面类型:
vue

vue版本:
vue2

打包方式:
离线

操作步骤:
下载4.75 android 离线 sdk Hbuilder 版本为4.75 生成本地打包资源 更改appID 等相关资源文件 启动白屏、云打包是正常的

预期结果:
能正常启动和打包

实际结果:
白屏

bug描述:
APP 提交云打包正常 里面自己写了一些 uts 的插件 也用了一些插件市场的插件 用了npm 库的一些插件 云打包 正常 离线打包 报错 并且白屏 起不来 代码全局搜了 也没有搜出关于 invokeSync 的调用


更多关于android APP 离线打包 uni-app Uncaught TypeError Cannot read property invokeSync of undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该bug反馈内容基本完整但关键信息缺失。BUG描述说明了离线打包白屏且报错"Uncaught TypeError: Cannot read property ‘invokeSync’ of undefined",对比云打包正常的情况,提供了开发环境(HBuilderX 4.75)、目标平台(Android 13)等基础信息,但缺少错误堆栈日志、具体使用的uts插件列表及基座类型说明,导致难以精准复现。
bug成立可能性高。根据知识库,离线打包与云打包存在本质差异:离线打包无法使用插件市场的付费原生插件,且Android离线打包需特别注意依赖配置。错误"invokeSync of undefined"通常由以下原因导致:

未正确添加必要依赖:离线SDK Android Studio制作的自定义基座需手动添加implementation 'com.squareup.okhttp3:okhttp:3.12.12’和implementation ‘com.squareup.okio:okio:1.15.0’ 参考链接
基座类型混淆:需区分标准基座、云打包自定义基座和离线SDK制作的基座 参考链接
版本兼容问题:建议升级至HBuilderX 3.6.1+版本重新打包 参考链接

用户未提供错误日志和插件配置细节,可能忽略了离线打包的特殊要求。应优先检查依赖配置,尝试使用云打包自定义基座替代离线SDK制作的基座,并确保SDK版本符合要求。 内容为 AI 生成,仅供参考

更多关于android APP 离线打包 uni-app Uncaught TypeError Cannot read property invokeSync of undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题通常是由于离线打包时缺少必要的原生模块或配置导致的。invokeSync错误表明某个原生插件在离线环境中未能正确初始化。

主要原因和解决方案:

  1. 插件依赖问题:您使用的UTS插件或第三方插件在离线打包时依赖的原生库未正确集成。

    • 检查所有UTS插件是否已正确配置到离线工程中
    • 确保插件市场的原生插件已按离线打包要求配置
  2. SDK版本匹配:确保离线SDK版本与HBuilderX版本完全一致(4.75)

    • 核对SDK中的uniapp-release.aar版本
    • 检查所有依赖库版本是否匹配
  3. 原生模块初始化:在ApplicationonCreate中确保已初始化所有必要的模块

    // 在自定义Application中添加
    [@Override](/user/Override)
    public void onCreate() {
        super.onCreate();
        // 初始化uni-app
        UniSDKEngine.init(this, new UniSDKEngine.OnEngineCreatedListener() {
            [@Override](/user/Override)
            public void onEngineCreated() {
                // 引擎创建后的回调
            }
        });
    }
回到顶部