tsw
tsw
  • 发布:2025-12-09 18:21
  • 更新:2025-12-09 18:26
  • 阅读:40

【报Bug】安卓系统 uts 组件混合开发中添加了res的资源,在.kt中使用setContentView(R.layout.activity_pdf_preview)时报错:

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: mac14.5

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: Mi 10 Lite Zoom

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

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,未找到资源

bug描述:

2025-12-09 18:21 负责人:无 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

贴一下 你的 activity_pdf_prepview.xml , 里面大概率用到了报错的这个主题

  • tsw (作者)

    <?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent">


    <!-- 顶部导航栏 -->  
    <LinearLayout
    android:id="@+id/topBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@android:color/white"
    android:padding="16dp"
    android:gravity="center_vertical"
    android:elevation="4dp">

    <Button
    android:id="@+id/btnBack"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="返回首页"
    android:background="@android:color/holo_blue_light"
    android:textColor="@android:color/white"
    android:paddingHorizontal="16dp"
    android:paddingVertical="8dp"
    android:textSize="14sp"
    android:layout_marginRight="16dp" />

    <TextView
    android:id="@+id/tvPageInfo"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="1/1"
    android:textSize="16sp"
    android:gravity="center"
    android:textColor="@android:color/black" />

    <Button
    android:id="@+id/btnToggleScroll"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="切换滑动"
    android:background="@android:color/holo_green_light"
    android:textColor="@android:color/white"
    android:paddingHorizontal="16dp"
    android:paddingVertical="8dp"
    android:textSize="14sp" />
    </LinearLayout>

    <!-- PDF预览区域 -->
    <androidx.viewpager2.widget.ViewPager2
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/topBar" />

    </RelativeLayout>

    2025-12-09 18:39

  • tsw (作者)

    感觉就是没有支持这个

    2025-12-09 18:41

  • tsw (作者)

    uts编译器不支持R.layout,无法加载这个样式

    2025-12-09 18:43

Ask小助手

Ask小助手

该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 生成,仅供参考
tsw

tsw (作者) - 90后it,7年uniapp开发

安卓系统,不是鸿蒙系统,标题写错了

要回复问题请先登录注册