首页 APP开发 正文内容

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"]
    }
}

以后在官网看文档一定要细心,否则很容易出现这种很难排查的问题。