uni-app UTS插件开发原生页面时引入style报错
uni-app UTS插件开发原生页面时引入style报错
示例代码:
const builder = new AlertDialog.Builder(UTSAndroid.getUniActivity()!);
builder.setTitle("提示")
.setMessage("确定退出应用?")
.setPositiveButton("确定", null)
.setNegativeButton("取消", null)
.create()
.show()
操作步骤:
用uts创建一个原生activity,并尝试使用alertDialog,会直接报错。
预期结果:
1
实际结果:
1
bug描述:
我在使用uts开发Android原生插件时,需要开发一个继承自Activity的原生页面用来设置插件功能,期间会使用AlterDialog弹窗来提示用户,使用AlertDialog必须依附一个appcompat下的theme才行,所以在values下创建了styles.xml文件,云端打包好基座后,后续编译代码到真机的时候会报错(见附件),而且在原生页面中使用R.style.xxx会标红,在R.d.ts中也找不到style(见附件)
信息类型 | 内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | 11 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.57 |
手机系统 | Android |
手机系统版本 | Android 15 |
手机厂商 | 小米 |
手机机型 | 小米13 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
更多关于uni-app UTS插件开发原生页面时引入style报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
已知问题。 目前UTS插件暂时不支持非标准的资源标签。
https://doc.dcloud.net.cn/uni-app-x/plugin/uts-for-android.html#android原生资源文件-暂不支持三方库依赖
临时解决办法:在AS中编译得到AAR再给UTS插件使用
更多关于uni-app UTS插件开发原生页面时引入style报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是UTS插件开发中常见的资源引用问题。问题核心在于UTS插件环境下直接使用Android原生资源(R.style)的方式需要特殊处理。
解决方法如下:
- 确保styles.xml文件放在正确的目录结构下:
src/main/res/values/styles.xml
- 修改资源引用方式,UTS插件中需要使用以下格式:
const builder = new AlertDialog.Builder(UTSAndroid.getUniActivity()!, android.R.style.Theme_DeviceDefault_Dialog_Alert);
- 如果是自定义style,需要在UTS项目中声明:
declare const R: {
style: {
YourCustomStyle: number
}
}
- 云端打包时,确保在manifest.json中正确配置了UTS插件:
"app-plus": {
"plugins": {
"YourPluginName": {
"type": "uts"
}
}
}