You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi开发Wear OS应用:AndroidManifest自定义样式引用报错问题求助

解决AndroidManifest中引用自定义样式的错误问题

你遇到的问题核心是Android的资源规则不允许在AndroidManifest.xml中直接定义样式资源——<resources>和<style>标签必须放在项目的res/values/目录下的专用XML文件里,Manifest只能引用已存在的资源,不能内嵌定义。

具体解决步骤:

  1. 创建/修改样式资源文件
    在你的Delphi Android项目中,找到(或新建)res/values/styles.xml文件(如果没有res/values目录,手动创建这两个层级目录),将样式定义移到这里:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="Themeabc" parent="@android:style/Theme.DeviceDefault.Light">
            <item name="android:windowSwipeToDismiss">false</item>
        </style>
    </resources>
    

    额外提示:如果是Wear OS应用,推荐使用穿戴设备专属的父主题,比如@android:style/Theme.DeviceDefault.Wear,适配性会更好。

  2. 修正AndroidManifest中的主题引用
    把Activity的android:theme属性值改成标准的样式资源引用格式@style/Themeabc,替换原来的@manifest/Themeabc:

    <activity 
        android:name="com.embarcadero.firemonkey.FMXNativeActivity" 
        android:label="%activityLabel%" 
        android:theme="@style/Themeabc" 
        android:configChanges="orientation|keyboard|keyboardHidden|screenSize" 
        android:launchMode="singleTask">
        <!-- 其他内容保持不变 -->
    </activity>
    
  3. 确认Delphi打包资源
    确保Delphi项目会把res目录下的资源打包进APK:检查Project Options → Android → Resources,确认res目录被包含在资源搜索路径中。

为什么原来的写法不行?

Android的资源系统是独立于Manifest的,所有可引用的资源(样式、字符串、布局等)都必须放在res/目录对应的子文件夹里,Manifest只能通过@资源类型/资源名的格式引用这些预定义的资源,不能像HTML那样在当前文件内嵌定义样式。

内容的提问来源于stack exchange,提问作者Michał Hetnar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 14:12:51