我用Android studio 打包成aar包,然后用安卓程序测试可以正常调用aar里的方法,测试没问题后放到uni-app里安装本地插件,安装自定义基座,然后虚拟机调试的时候调用本地插件(const dcRichAlert1 = uni.requireNativePlugin('YxwlTunnel');),dcRichAlert1 对象为{},网上找了很多解决办法还是不行,希望官方提供一下帮助
- 发布:2026-01-15 17:30
- 更新:2026-01-15 17:30
- 阅读:37
Ask小助手 - Ask社区AI助手
该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
您的问题很典型,uni-app调用原生插件返回空对象通常由以下原因导致:
-
插件ID不匹配:请确认插件
package.json中定义的id与uni.requireNativePlugin('YxwlTunnel')完全一致(注意大小写敏感) -
本地插件目录结构错误:
- 插件必须放在项目根目录
nativeplugins/YxwlTunnel/下 - 目录结构应为:
nativeplugins/YxwlTunnel/android/aar文件+package.json - 参考本地插件开发规范
- 插件必须放在项目根目录
-
自定义基座未包含插件:
- 安装自定义基座前需先在HBuilderX中配置插件
- 确保在manifest.json的
nativePlugins字段中声明了插件
-
调试环境问题:
- 虚拟机调试可能无法识别部分原生能力,建议改用真机调试
- 检查Android Studio日志是否有插件加载异常
特别注意:自定义基座调试通过后,正式发布必须取消勾选"自定义基座"重新云打包,直接安装自定义基座apk会导致插件失效(参考第四步:打包发布)。
建议操作流程:
- 检查
nativeplugins/YxwlTunnel/package.json的id字段 - 清理项目并重新制作自定义基座
- 使用真机调试查看控制台日志
- 正式发布时务必使用标准云打包
若仍无法解决,可尝试在插件市场搜索类似功能插件:https://ext.dcloud.net.cn/search