uni-app 使用 UTS 来开发安卓原生插件,运行时报错:Failed to decode uts plugin’s configuration file in ‘xxx/config.json’
2023年09月27日 300
用 uts 来开发安卓插件时,编译失败了并且报错了,看看我怎么解决的。
报错信息
今年 uni-app 发布的 UTS 语言看着很不错,按照 uni-app 官网的文档,自己尝试着用 UTS 语法来实现一些 APP 里原生 api 调用的功能,在电脑上运行时直接报错了,报错信息如下:
Failed to decode uts plugin's configuration file in '/uni_modules/xxx/utssdk/app-android/config.json'
报错原因分析
根据报错信息内容,是因为我开发的插件目录下的 config.json
配置文件解析失败,导致项目无法编译。这个文件是 uts 插件在 Android 平台的原生层配置文件,可以在其中配置依赖仓储等 gradle 相关内容。于是找到这个文件,在 HbuilderX 中打开,认真检查了配置,没有发现格式上有错误,关键是这些配置都是从官网拷贝下来的,百思不得解。
解决方法
最后还是被我找到解决的方法了,原来 config.json
是一个标准的 json 配置文件,和在 js 中引入的 json 不一样,完全不能包含注释。官网的示例代码中包含注释,是为了直观地向开发者解释每一个配置的作用,在开发的时候,需要把所有的注释都删掉。
删掉后的代码如下:
{
"abis": ["armeabi-v7a","arm64-v8a"],
"dependencies": [
"androidx.core:core-ktx:1.6.0",
{
"id": "com.xxx.richtext:richtext",
"source": "implementation 'com.xxx.richtext:richtext:3.0.7'"
}
],
"minSdkVersion": 21,
"project": {
"plugins": ["com.huawei.agconnect"],
"dependencies": ["com.huawei.agconnect:agcp:1.6.0.300"]
}
}
以后在官网看文档一定要细心,否则很容易出现这种很难排查的问题。