uni-app uts在导入import Context from "android.content.Context" 使用Context会报错

uni-app uts在导入import Context from “android.content.Context” 使用Context会报错

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:4.76
手机系统:Android
手机系统版本号:Android 16
手机厂商:小米
手机机型:14
页面类型:vue
vue版本:vue2
打包方式:云端

示例代码:

/**

  • 引用 Android 系统库,示例如下:
  • import { Context } from “android.content.Context”;
  • [可选实现,按需引入] */ import Context from “android.content.Context”; import AudioManager from “android.media.AudioManager”; import { Options, Result } from “…/interface”;

export function requestAudioFocus(options: Options) { const context = UTSAndroid.getAppContext(); var audioManager: AudioManager = context?.getSystemService(Context.AUDIO_SERVICE) as AudioManager; }


操作步骤:


目前只在指定项目中能复现,插件放其他项目中没有这个问题

预期结果:

正常编译


实际结果:


编译失败

bug描述:

10:51:27.664 [vite]: Rollup failed to resolve import “android.content.Context” from “D:/work/tanfeng/uni_modules/g-audio-focus/utssdk/app-android/index.uts”. 10:51:27.664 This is most likely unintended because it can break your application at runtime. 10:51:27.664 If you do want to externalize this module explicitly add it to 10:51:27.664 build.rollupOptions.external 目前只在这一个项目中有报错,我想知道怎么解决


更多关于uni-app uts在导入import Context from "android.content.Context" 使用Context会报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

最终是在插件市场下载了一个插件然后把我的代码搬进去就能正常编译了

更多关于uni-app uts在导入import Context from "android.content.Context" 使用Context会报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在UTS中导入Android原生类时,需要注意模块路径的引用方式。根据错误信息,问题出现在import Context from "android.content.Context"这一行。

正确的导入方式应该是:

import Context from "android.content.Context";

但根据你的错误提示,UTS编译器无法解析这个模块路径。建议检查以下几点:

  1. 检查UTS环境配置:确保HBuilderX 4.76版本对UTS的支持完整,可以尝试更新到最新版本

  2. 验证导入语句:确认导入语句完全正确,Android系统类的导入需要精确的包路径

  3. 检查项目配置:在项目的manifest.json中确认UTS模块配置正确,特别是Android平台相关设置

  4. 清理缓存重新编译:删除unpackagenode_modules目录,重新安装依赖并编译

  5. 替代方案:可以尝试直接使用UTSAndroid提供的上下文,而不需要显式导入Context类:

const audioManager = UTSAndroid.getAppContext()?.getSystemService("audio") as AudioManager;
回到顶部