7***@qq.com
7***@qq.com
  • 发布:2026-01-10 17:34
  • 更新:2026-01-10 17:48
  • 阅读:196

使用Android离线sdk自带的UniPlugin-Hello-AS,UTS插件不能正常调用。

分类:uts

HBuilder版本:4.87.2025121004
离线sdk版本: 4.87.2025121004

在android studio里,已经可以把项目运行到真机上,其中三个插件都能正常运行。但就是UTS插件不能正常运行,查看logcat日志内容为:

 [ERROR][Vue warn]: Error in v-on handler: "Error: 返回值为:"";请求参数为:{"moduleName":"uts-toast","moduleType":"","package":"uts.sdk.modules.utsToast","class":"IndexKt","name":"showToastByJs","type":"method","method":[{"name":"option","type":"UTSSDKModulesUtsToastToastOptionsJSONObject"}],"nested":false,"keepAlive":false,"params":[{"message":"这是一条显示在底部的toast"}]}"  

                                                                                                    (found <Root>)  
2026-01-10 17:31:08.014 16273-16319 console                 com.gzsz.voicecapture                I  [ERROR]Error: 返回值为:"";请求参数为:{"moduleName":"uts-toast","moduleType":"","package":"uts.sdk.modules.utsToast","class":"IndexKt","name":"showToastByJs","type":"method","method":[{"name":"option","type":"UTSSDKModulesUtsToastToastOptionsJSONObject"}],"nested":false,"keepAlive":false,"params":[{"message":"这是一条显示在底部的toast"}]}

我是按这个流程来配置的:https://doc.dcloud.net.cn/uni-app-x/native/use/androiduts.html

补充下:用云打包是正常的。
辛苦伙伴们帮我看看可能是什么原因。

2026-01-10 17:34 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者) - 80后大叔

AI的回复不对

Ask小助手

Ask小助手

该问题请在专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

根据您的问题描述和日志分析,UTS插件在离线SDK环境下无法正常调用的主要原因可能是插件注册配置不完整。云打包正常而离线SDK异常,说明问题出在本地Android Studio环境的配置上。

关键点排查:

  1. dcloud_uniplugins.json配置缺失
    UTS插件必须在项目assets/dcloud_uniplugins.json中正确注册。检查该文件是否包含类似以下配置:

    {  
     "nativePlugins": [{  
       "plugins": [{  
         "type": "component",  
         "name": "uts-toast",  
         "class": "uts.sdk.modules.utsToast.IndexKt"  
       }]  
     }]  
    }  

    注意:class路径需与日志中的packageclass字段完全一致

  2. build.gradle未配置UTSHooksClassArray
    在app/build.gradle中必须添加UTS钩子类配置:

    defaultConfig {  
     buildConfigField 'String[]', 'UTSHooksClassArray', '{\\\"uts.sdk.modules.utsToast.AppHookProxy\\\"}'  
    }  

    如果已有其他钩子类,需合并配置(如示例知识库所示)

  3. 缺少Application初始化逻辑
    根据UTS插件文档,如果插件依赖Application生命周期,必须实现UTSAndroidHookProxy接口。检查插件代码是否包含:

    export class AppHookProxy implements UTSAndroidHookProxy {  
     override onCreate(application: Application) {  
       // 初始化逻辑  
     }  
    }  
  4. 路径大小写问题
    虽然您提到已处理大小写,但Android文件系统对路径大小写敏感,请确认:

    • utssdk/app-android目录是否存在
    • Kotlin文件编译后的class路径是否与配置一致

建议操作步骤:

  1. 检查assets/dcloud_uniplugins.json是否存在且配置正确
  2. 确认build.gradle中UTSHooksClassArray配置完整
  3. 清理项目后重新构建(Build > Clean Project & Rebuild Project)
  4. 参考Android UTS配置文档核对配置细节

若仍无法解决,可尝试在插件代码中添加日志输出,确认onCreate是否被调用。根据ISSUE#14535的经验,自定义基座环境下UTS插件初始化容易因配置遗漏导致空指针异常。

内容为 AI 生成,仅供参考

要回复问题请先登录注册