讲师中心 微信公众号
AI工具推荐 视频效率加速

Android manifest application标签 安卓清单文件全局属性配置

雨杰吖_5568

雨杰吖_5568

发布时间:2026-03-04 10:38:03

|

763人浏览过

|

来源于php中文网

原创

真正影响所有组件的application属性包括android:allowBackup、android:usesCleartextTraffic、android:networkSecurityConfig、android:debuggable(设为true时强制生效)、android:hardwareAccelerated(仅对Activity生效);android:exported和android:enabled不继承,必须逐个组件声明。

android manifest application标签 安卓清单文件全局属性配置

application 标签里哪些属性真会影响所有组件?

不是所有写在 <application></application> 里的属性都会自动继承给 activity/service/receiver —— 只有明确标注“可被子元素继承”的才生效。比如 android:exported 和 android:enabled 就不会向下传递,而 android:allowBackup、android:usesCleartextTraffic、android:networkSecurityConfig 这类全局行为控制项才会。

常见误操作:把 android:exported="true" 放在 <application></application> 里,以为能省掉每个 <activity></activity> 单独声明,结果构建直接报错:error: exported attribute must be explicitly specified。这是 Android 12+ 的硬性要求,和 <application></application> 无关。

  • android:allowBackup 和 android:fullBackupContent 确实影响全部组件的备份行为
  • android:debuggable 默认为 false,但一旦设为 true,所有组件都可被调试(即使单个 activity 显式设了 false,也无效)
  • android:hardwareAccelerated 默认 true,对所有 activity 生效;但 service/receiver 不受影响

targetSdkVersion 升级后 application 标签突然不兼容?

从 Android 12(API 31)起,<application></application> 必须显式声明 android:exported,否则安装失败;Android 14(API 34)进一步要求 foreground service 必须声明 android:foregroundServiceType。这些不是可选配置,是 manifest 解析时的校验规则。

错误现象:升级 targetSdkVersion 后编译通过,但安装时报 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED,日志里提示某个 <activity></activity> 缺少 android:exported —— 注意,这个错误和 <application></application> 本身无关,但它会暴露你之前靠默认值蒙混过关的问题。

  • 不要依赖旧版默认行为,尤其 android:exported 必须每个四大组件单独设
  • android:exported="false" 并不等于“安全”,它只表示不接受跨应用 intent;隐式 intent 仍可能被同进程其他组件触发
  • 如果用了 <intent-filter></intent-filter>,android:exported 必须为 true,否则运行时报 SecurityException

application 标签里路径类配置容易写错的位置

像 android:appCategory、android:dataExtractionRules、android:backupAgent 这些属性,值不是字符串字面量,而是资源引用或类名路径,拼错一个字母就导致解析失败或静默失效。

Android SMS Gateway
Android SMS Gateway

自托管短信服务,使用 Android 手机作为网关提供 HTTP API,支持发送/接收短信,兼容主流短信网关。

下载

典型问题:android:dataExtractionRules="@xml/data_extraction_rules" 指向的文件若不存在或命名不匹配(比如实际是 @xml/backup_rules),系统不会报错,但备份时直接跳过该规则;android:backupAgent 若写成 .MyBackupAgent 而实际类在子包里(如 com.example.backup.MyBackupAgent),就会抛 NoClassDefFoundError。

  • 所有以 @ 开头的值(如 @xml/xxx、@drawable/xxx)必须对应 res 目录下真实存在的资源
  • 类名路径必须完整,不能用相对写法;android:name=".MyApp" 是合法的,但 android:backupAgent=".MyAgent" 很可能出错,建议写全路径
  • android:networkSecurityConfig 指向的 xml 文件必须放在 res/xml/ 下,且根节点是 <network-security-config></network-security-config>,不是 <resources></resources>

多 module 项目中 application 标签的合并逻辑

manifest 合并不是简单覆盖,而是按工具链规则 merge。主 module 的 <application></application> 是 base,library module 的同名属性(如 android:allowBackup)会尝试合并 —— 但冲突时会报 merge error,而不是取后者。

比如主 module 写了 android:allowBackup="true",library module 写了 android:allowBackup="false",AS 会直接报错:Attribute allowBackup value=(false) from library is also present at AndroidManifest.xml:xx:yy value=(true)。这不是 bug,是 merge 工具的保护机制。

  • 避免在 library module 的 manifest 里设置全局属性,除非明确需要覆盖主工程行为
  • 用 tools:replace="android:allowBackup" 可强制覆盖,但要清楚后果:主工程的意图被完全忽略
  • 真正该由 library 控制的行为(如网络配置),应通过代码初始化(如 OkHttp 初始化)而非 manifest 声明

manifest 里最危险的不是写错什么,而是以为写了就等于生效 —— 很多属性只有在特定 API level、特定设备厂商定制系统、甚至特定安装方式(adb install vs Play Store)下才真正起作用。验证不能只看编译通过,得真机测行为。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4784

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

6217

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2522

2024.11.28

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1009

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3160

2023.10.25

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1818

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2884

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6204

2023.10.24

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

40

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 44.9万人学习

Java 教程
Java 教程

共578课时 | 194.7万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 9.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn