0

0

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

煙雲

煙雲

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

|

663人浏览过

|

来源于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:exportedandroid:enabled 就不会向下传递,而 android:allowBackupandroid:usesCleartextTrafficandroid:networkSecurityConfig 这类全局行为控制项才会。

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

  • android:allowBackupandroid: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:appCategoryandroid:dataExtractionRulesandroid:backupAgent 这些属性,值不是字符串字面量,而是资源引用或类名路径,拼错一个字母就导致解析失败或静默失效。

HaiSnap
HaiSnap

一站式AI应用开发和部署工具

下载

典型问题: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助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

1939

2024.04.01

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

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

2116

2024.08.01

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

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

1146

2024.11.28

scripterror怎么解决
scripterror怎么解决

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

411

2023.10.18

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

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

368

2023.10.25

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

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

698

2023.08.03

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

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

219

2023.09.04

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

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

1561

2023.10.24

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

23

2026.03.03

热门下载

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

精品课程

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

共162课时 | 19.9万人学习

Java 教程
Java 教程

共578课时 | 76.6万人学习

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

共64课时 | 6.9万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号