uni-app 安卓系统 uts 组件混合开发中添加了res的资源在.kt中使用setContentView(R.layout.activity_pdf_preview)时报错
uni-app 安卓系统 uts 组件混合开发中添加了res的资源在.kt中使用setContentView(R.layout.activity_pdf_preview)时报错
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | mac14.5 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:mac14.5
HBuilderX类型:正式
HBuilderX版本号:4.85
手机系统:Android
手机系统版本号:Android 12
手机厂商:小米
手机机型:Mi 10 Lite Zoom
页面类型:vue
vue版本:vue3
打包方式:云端
项目创建方式:HBuilderX
示例代码:
```cpp
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 隐藏系统默认的ActionBar
supportActionBar?.hide()
setContentView(R.layout.activity_pdf_preview)
// 初始化控件
viewPager = findViewById(R.id.viewPager)
btnBack = findViewById(R.id.btnBack)
tvPageInfo = findViewById(R.id.tvPageInfo)
btnToggleScroll = findViewById(R.id.btnToggleScroll)
// 设置返回按钮点击事件
btnBack.setOnClickListener {
// 返回首页
val intent = Intent()
intent.setAction("android.intent.action.MAIN")
intent.addCategory("android.intent.category.LAUNCHER")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
finish()
}
// 设置滑动模式切换按钮点击事件
btnToggleScroll.setOnClickListener {
isVerticalScroll = !isVerticalScroll
updateScrollMode()
}
// 设置ViewPager2页面变化监听
viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
updatePageInfo(position)
}
})
val pdfUrl = intent.getStringExtra("PDF_URL")
if (pdfUrl != null) {
loadPdfFromUrl(pdfUrl)
} else {
finish()
}
}
操作步骤:
鸿蒙系统 uts api组件混合开发中,添加了app-android/res/layout/activity_pdf_preview.xml,在PDFPreviewActivity.kt中使用setContentView(R.layout.activity_pdf_preview)时报错:error: resource style/Theme.AppCompat.Light,DarkActionBar
预期结果:
正常运行,能找到资源
实际结果:
报错:error: resource style/Theme.AppCompat.Light,DarkActionBar,未找到资源
更多关于uni-app 安卓系统 uts 组件混合开发中添加了res的资源在.kt中使用setContentView(R.layout.activity_pdf_preview)时报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
贴一下 你的 activity_pdf_prepview.xml , 里面大概率用到了报错的这个主题
更多关于uni-app 安卓系统 uts 组件混合开发中添加了res的资源在.kt中使用setContentView(R.layout.activity_pdf_preview)时报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">
感觉就是没有支持这个
uts编译器不支持R.layout,无法加载这个样式
该bug反馈内容基本完整,但存在关键概念混淆。反馈中描述在鸿蒙系统uts组件混合开发中使用setContentView(R.layout.activity_pdf_preview)时报错"resource style/Theme.AppCompat.Light,DarkActionBar未找到",这并非真实bug而是平台兼容性问题。
核心问题在于:用户错误地将Android原生开发模式套用到鸿蒙平台。鸿蒙系统使用ArkUI框架而非Android View体系,不支持Theme.AppCompat等Android特有主题资源。知识库明确说明"鸿蒙平台上不支持app-plus相关内容",且"uniapp-x编译到Harmony时应调用鸿蒙所有api,混合使用ArkTS"。
反馈中代码示例显示用户在.kt文件中使用Android Activity生命周期方法,但uni-app-x的鸿蒙开发应使用uts编写插件并遵循鸿蒙开发规范,不应直接使用Android原生Activity。错误信息表明构建系统无法找到Android资源,恰证明用户错误地将Android资源配置用于鸿蒙平台。
建议用户查阅uni-app-x鸿蒙开发文档,使用鸿蒙推荐的资源引用方式(如getResourceManager())。若需PDF预览功能,应开发符合鸿蒙规范的uts插件,而非移植Android原生代码。当前HBuilderX 4.85版本已支持鸿蒙开发,但必须遵循平台特性。 内容为 AI 生成,仅供参考
安卓系统,不是鸿蒙系统,标题写错了
在 uni-app 的 UTS 混合开发中,使用 setContentView(R.layout.activity_pdf_preview) 报错 resource style/Theme.AppCompat.Light,DarkActionBar,通常是因为缺少对应的 Android 主题依赖或配置问题。
主要原因与解决方案:
-
缺少 AppCompat 依赖:
Theme.AppCompat是 Android 支持库的主题,需要在app-android目录下的build.gradle文件中添加依赖。- 打开
app-android/build.gradle文件。 - 在
dependencies块中添加:implementation 'androidx.appcompat:appcompat:1.6.1' - 同步 Gradle 配置。
- 打开
-
主题未在清单文件中正确声明:确保
AndroidManifest.xml文件中为 Activity 指定了正确的主题。- 打开
app-android/src/main/AndroidManifest.xml。 - 在
<application>或<activity>标签中设置主题:<application android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> <!-- 或为特定 Activity 设置 --> <activity android:name=".PDFPreviewActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar" /> </application>
- 打开


