uni-app 官方插件 uni-wifi 运行到Android App 基座报错 x Union Type is not supported
uni-app 官方插件 uni-wifi 运行到Android App 基座报错 x Union Type is not supported
示例代码:
- 下载的代码:
npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project
- 运行的代码:
uni.startWifi({ success() { console.log('success'); }, fail() { console.log('fail'); } })
操作步骤:
- 运行到手机模拟器 android app 基座
预期结果:
- 可以正常运行
实际结果:
- x Union Type is not supported.
项目信息 | 描述 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本号 | Windows 10 企业版 LTSC |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.99 |
手机系统 | Android |
手机系统版本号 | Android 14 |
手机厂商 | 小米 |
手机机型 | Redmi K60 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
bug描述:
11:01:40.299 x Union Type is not supported.
11:01:40.299 at uni_modules/uni-wifi/utssdk/interface.uts:101:1
11:01:40.301 100 | /*
11:01:40.302 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013;
11:01:40.303 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:01:40.305 101 |
11:01:40.305 ---- 11:01:40.306 x Expected '{', got ';' 11:01:40.307 at uni_modules/uni-wifi/utssdk/interface.uts:101:1 11:01:40.308 100 | */ 11:01:40.309 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013; 11:01:40.309 : ^ 11:01:40.310 101 | 11:01:40.310 ---- 11:01:40.311 Caused by: 11:01:40.312 Syntax Error 11:01:40.314 Error: 11:01:40.314 x Union Type is not supported. 11:01:40.315 at uni_modules/uni-wifi/utssdk/interface.uts:101:1 11:01:40.315 100 | */ 11:01:40.316 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013; 11:01:40.318 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 11:01:40.318 101 | 11:01:40.319 ---- 11:01:40.320 x Expected '{', got ';' 11:01:40.320 at uni_modules/uni-wifi/utssdk/interface.uts:101:1 11:01:40.323 100 | /* 11:01:40.323 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013; 11:01:40.324 : ^ 11:01:40.325 101 | 11:01:40.326
----
11:01:40.327 Caused by:
11:01:40.327 Syntax Error
11:01:41.961 [plugin:uni:uts] Cannot create property ‘code’ on string ‘load_transformed failed
11:01:41.961 Caused by:
11:01:41.962 0: Bundler.load() failed
11:01:41.962 1: Bundler.loader.load(C:\Users\Administrator\Desktop\test\drong-screen-web\src\uni_modules\uni-wifi\utssdk\interface.uts) failed
11:01:41.964 2:
11:01:41.964 x Union Type is not supported.
11:01:41.965 at uni_modules/uni-wifi/utssdk/interface.uts:99:1
11:01:41.965 98 | /* - 12010 系统其他错误
11:01:41.967 99 | /* - 12013 系统保存的 Wi-Fi 配置过期,建议忘记 Wi-Fi 后重试,仅 Android 支持
11:01:41.967 100 | /
11:01:41.968 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013;
11:01:41.968 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:01:41.969 102 |
11:01:41.970 103 | export interface WifiFail extends IUniError{
11:01:41.971 104 | errCode: WifiErrorCode
11:01:41.972 ---- 11:01:41.973 x Expected ‘{’, got ‘;’ 11:01:41.973 at uni_modules/uni-wifi/utssdk/interface.uts:99:1 11:01:41.975 98 | / - 12010 系统其他错误 11:01:41.976 99 | /* - 12013 系统保存的 Wi-Fi 配置过期,建议忘记 Wi-Fi 后重试,仅 Android 支持 11:01:41.976 100 | / 11:01:41.977 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013; 11:01:41.977 : ^ 11:01:41.979 102 | 11:01:41.979 103 | export interface WifiFail extends IUniError{ 11:01:41.980 104 | errCode: WifiErrorCode 11:01:41.980
11:01:41.982 3: Syntax Error
11:01:41.982 Error: load_transformed failed
11:01:41.983 Caused by:
11:01:41.983 0: Bundler.load() failed
11:01:41.984 1: Bundler.loader.load(C:\Users\Administrator\Desktop\test\drong-screen-web\src\uni_modules\uni-wifi\utssdk\interface.uts) failed
11:01:41.984 2:
11:01:41.986 x Union Type is not supported.
11:01:41.987 at uni_modules/uni-wifi/utssdk/interface.uts:99:1
11:01:41.987 98 | / - 12010 系统其他错误
11:01:41.988 99 | /* - 12013 系统保存的 Wi-Fi 配置过期,建议忘记 Wi-Fi 后重试,仅 Android 支持
11:01:41.988 100 | */
11:01:41.989 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013;
11:01:41.990 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:01:41.991 102 |
11:01:41.992 103 | export interface WifiFail extends IUniError{
11:01:41.992 104 | errCode: WifiErrorCode
11:01:41.994 ---- 11:01:41.994 x Expected '{', got ';' 11:01:41.995 at uni_modules/uni-wifi/utssdk/interface.uts:99:1 11:01:41.995 98 | /* - 12010 系统其他错误 11:01:41.996 99 | /* - 12013 系统保存的 Wi-Fi 配置过期,建议忘记 Wi-Fi 后重试,仅 Android 支持 11:01:41.996 100 | */ 11:01:41.998 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013; 11:01:41.999 : ^ 11:01:41.999 102 | 11:01:42.000 103 | export interface WifiFail extends IUniError{ 11:01:42.001 104 | errCode: WifiErrorCode 11:01:42.002
----
11:01:42.002 3: Syntax Error’
11:01:42.003 at uni_modules/uni-wifi:1:0
更多关于uni-app 官方插件 uni-wifi 运行到Android App 基座报错 x Union Type is not supported的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用 CLI 创建的嘛。 使用HBuilder X 创建项目是否有问题
更多关于uni-app 官方插件 uni-wifi 运行到Android App 基座报错 x Union Type is not supported的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用 Hbuilder X 创建的项目可以
dcloud的相关依赖包不是最新的。
都是最新的
刚下载下来的,并且又执行了一下update也还是不可以
{ “name”: “uni-preset-vue”, “version”: “0.0.0”, “scripts”: { “dev:app”: “uni -p app”, “dev:app-android”: “uni -p app-android”, “dev:app-ios”: “uni -p app-ios”, “dev:custom”: “uni -p”, “dev:h5”: “uni”, “dev:h5:ssr”: “uni --ssr”, “dev:mp-alipay”: “uni -p mp-alipay”, “dev:mp-baidu”: “uni -p mp-baidu”, “dev:mp-jd”: “uni -p mp-jd”, “dev:mp-kuaishou”: “uni -p mp-kuaishou”, “dev:mp-lark”: “uni -p mp-lark”, “dev:mp-qq”: “uni -p mp-qq”, “dev:mp-toutiao”: “uni -p mp-toutiao”, “dev:mp-weixin”: “uni -p mp-weixin”, “dev:quickapp-webview”: “uni -p quickapp-webview”, “dev:quickapp-webview-huawei”: “uni -p quickapp-webview-huawei”, “dev:quickapp-webview-union”: “uni -p quickapp-webview-union”, “build:app”: “uni build -p app”, “build:app-android”: “uni build -p app-android”, “build:app-ios”: “uni build -p app-ios”, “build:custom”: “uni build -p”, “build:h5”: “uni build”, “build:h5:ssr”: “uni build --ssr”, “build:mp-alipay”: “uni build -p mp-alipay”, “build:mp-baidu”: “uni build -p mp-baidu”, “build:mp-jd”: “uni build -p mp-jd”, “build:mp-kuaishou”: “uni build -p mp-kuaishou”, “build:mp-lark”: “uni build -p mp-lark”, “build:mp-qq”: “uni build -p mp-qq”, “build:mp-toutiao”: “uni build -p mp-toutiao”, “build:mp-weixin”: “uni build -p mp-weixin”, “build:quickapp-webview”: “uni build -p quickapp-webview”, “build:quickapp-webview-huawei”: “uni build -p quickapp-webview-huawei”, “build:quickapp-webview-union”: “uni build -p quickapp-webview-union”, “type-check”: “vue-tsc --noEmit” }, “dependencies”: { “@dcloudio/uni-app”: “3.0.0-3081220230817001”, “@dcloudio/uni-app-plus”: “3.0.0-3081220230817001”, “@dcloudio/uni-components”: “3.0.0-3081220230817001”, “@dcloudio/uni-h5”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-alipay”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-baidu”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-jd”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-kuaishou”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-lark”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-qq”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-toutiao”: “3.0.0-3081220230817001”, “@dcloudio/uni-mp-weixin”: “3.0.0-3081220230817001”, “@dcloudio/uni-quickapp-webview”: “3.0.0-3081220230817001”, “vue”: “^3.2.45”, “vue-i18n”: “^9.1.9” }, “devDependencies”: { “@dcloudio/types”: “^3.3.2”, “@dcloudio/uni-automator”: “3.0.0-3081220230817001”, “@dcloudio/uni-cli-shared”: “3.0.0-3081220230817001”, “@dcloudio/uni-stacktracey”: “3.0.0-3081220230817001”, “@dcloudio/uni-uts-v1”: “^3.0.0-3081220230817001”, “@dcloudio/vite-plugin-uni”: “3.0.0-3081220230817001”, “@vue/runtime-core”: “^3.2.45”, “@vue/tsconfig”: “^0.1.3”, “typescript”: “^4.9.4”, “vite”: “4.1.4”, “vue-tsc”: “^1.0.24” } }
抱歉是我之前的操作方式不对,按您说的换了最新的依赖包就解决了 @dcloudio/uni-uts-v1@3.0.0-alpha-4000020231227002
请问官方是否是尝试过 npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project 下载最新的包并且使用 uni-wifi 看是否可行
在使用 uni-app 官方插件 uni-wifi
时,如果运行到 Android App 基座时遇到报错 x Union Type is not supported
,这通常是由于 TypeScript 或 JavaScript 的某些语法或特性在当前环境中不被支持所导致的。
可能的原因和解决方案:
-
TypeScript 版本问题:
- 如果你在项目中使用的是 TypeScript,可能是由于 TypeScript 版本过高或过低,导致某些语法特性不被支持。
- 解决方案:尝试降低或升级 TypeScript 版本,确保使用的版本与 uni-app 和
uni-wifi
插件兼容。
-
JavaScript 语法兼容性问题:
- 某些 JavaScript 语法(如联合类型
Union Type
)可能在当前的 JavaScript 引擎中不被支持。 - 解决方案:检查代码中是否使用了不被支持的语法,尝试使用更兼容的语法替代。
- 某些 JavaScript 语法(如联合类型
-
uni-app 或插件版本问题:
- 可能是 uni-app 或
uni-wifi
插件的版本问题,导致某些功能无法正常运行。 - 解决方案:尝试更新 uni-app 和
uni-wifi
插件到最新版本,或者回退到已知稳定的版本。
- 可能是 uni-app 或
-
Android 基座问题:
- 可能是 Android 基座的环境配置有问题,导致某些功能无法正常运行。
- 解决方案:尝试重新安装 Android 基座,或者检查 Android 基座的环境配置。
-
代码问题:
- 检查代码中是否有使用联合类型
Union Type
的地方,尝试将其替换为其他兼容的语法。 - 解决方案:例如,将
let x: string | number;
替换为let x: any;
或者使用其他方式处理。
- 检查代码中是否有使用联合类型
具体步骤:
-
检查 TypeScript 版本:
npm list typescript
如果版本过高或过低,可以尝试安装指定版本:
npm install typescript@4.4.4 --save-dev
-
更新 uni-app 和插件:
npm update uni-app npm update uni-wifi
-
重新安装 Android 基座:
- 在 HBuilderX 中,选择
运行
->运行到手机或模拟器
->重新安装基座
。
- 在 HBuilderX 中,选择
-
修改代码:
- 检查代码中是否有使用联合类型的地方,尝试替换为其他兼容的语法。
示例代码修改:
假设你有一段代码使用了联合类型:
let x: string | number;
x = "hello";
x = 123;
可以尝试修改为:
let x: any;
x = "hello";
x = 123;