赞
踩
uni-app引入原生插件的步骤如下:https://nativesupport.dcloud.net.cn/NativePlugin/course/android
将制作好的原生安卓插件包 复制到 uni-app 项目下的 nativeplugins 下的文件夹中,然后打开 uni-app 项目的 manifest.json 文件,查看源码视图,在 app-plus 下 nativePlugins 配置节点,添加引入的原生插件,生成自定义基座后,安装运行,结果报错
当前运行的基座不包含原生插件[xxx],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
字面意思,就是引入插件有问题,导致 HbuilderX 找不到 项目中 nativeplugins 下对应的插件信息,然后我找到 manifest.json 中当时添加的配置节点:
好像也没发现什么问题。那么是不是我引入插件的方式有问题呢?
于是我删除了直接在 manifest.json 文件中添加的配置节点,然后用 HbuilderX 自带的导入去操作。
删除之前添加的插件配置节点后,重新打开 manifest.json 文件,点击 “app原生插件配置”,点击本地插件后面的“选择本地插件”,然后勾选->确定,最后再点击源码视图,此时我发现了不一样的配置信息了:
啊??为啥name 是中文的了???这难道就是导致我之前找不到指定插件的原因吗??
于是我找到原来插件包的配置文件 package.json,发现了如下:
此时我才意识到,插件配置文件 package.json 下的 name 字段也是中文的,所以引入过去后那边也是中文的,而我手动添加的时候是英文的name id,导致最终找不到。。。。醉了。。。。。
结论:插件配置文件中的 package.json 下的 name 对应 manifest.json 下 插件配置节点下 的 name,且一定要英文的 id。
最后重新修改名字后,重新生成自定义基座,编译运行,搞定,不再报错了!!开心!!
2022-5-18 14:25:01 更新。。。
项目修改了,后来重新生成自定义基座后,去运行又发生了上面同样的错误,,这次我去排查了,没有写错 name 和 id,但是我注意到 class 有问题,没有写完整的类路径。。。。。我去,很有可能是合并代码的时候给我覆盖了,,,泪崩,,,
注意:Class 一定要写完整的包名 + UniModule 类名 的完整路径,不要只写包名,如果后面没有 指定继承自 UniModule 的类名,那么打包时是发现不了这个错误,而一运行就有问题,因为调用插件的方法是找不到的,没有注册成功,所以就有问题!切记!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。