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

如何为AndroidManifest.xml的application标签添加指定配置属性?

用XMLStarlet给AndroidManifest.xml的application标签添加属性

需求说明

现有AndroidManifest.xml内容如下:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="xxxxxxxx" android:versionName="xxxxx" package="xxxxxx" xmlns:android="xxxxxxxxxxxxxx">
    <application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
    </application>
    <uses-feature android:name="android.hardware.camera.front" android:required="false" />
</manifest>

需要给<application>标签添加以下两个属性:

android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true"

最终要得到的文件格式:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="xxxxxxxx" android:versionName="xxxxx" package="xxxxxx" xmlns:android="xxxxxxxxxxxxxx">
    <application android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
    </application>
    <uses-feature android:name="android.hardware.camera.front" android:required="false" />
</manifest>

之前用sed命令尝试失败,原因在于sed是基于文本匹配的工具,XML标签的属性顺序、换行、缩进等结构化特征都会导致匹配逻辑失效,而且XML作为结构化文档,用纯文本工具处理容易破坏格式或出现匹配错误。


XMLStarlet实现步骤

1. 安装XMLStarlet

  • Debian/Ubuntu系:sudo apt install xmlstarlet
  • macOS:brew install xmlstarlet
  • Windows:下载官方压缩包解压后配置环境变量即可

2. 执行修改命令

直接修改原文件(原地编辑):

xmlstarlet ed -P -S -L \
--insert '/manifest/application' --type attr -n android:networkSecurityConfig -v "@xml/network_security_config" \
--insert '/manifest/application' --type attr -n android:requestLegacyExternalStorage -v "true" \
AndroidManifest.xml

如果不想修改原文件,可将结果输出到新文件:

xmlstarlet ed -P -S \
--insert '/manifest/application' --type attr -n android:networkSecurityConfig -v "@xml/network_security_config" \
--insert '/manifest/application' --type attr -n android:requestLegacyExternalStorage -v "true" \
AndroidManifest.xml > new_AndroidManifest.xml

命令参数解释

  • ed:进入XML编辑模式
  • -P:保留原XML的格式(缩进、换行)
  • -S:保留原文件的空格布局
  • -L:直接修改原文件(不加此参数则输出到标准输出)
  • --insert:指定要插入属性的节点路径(/manifest/application对应根节点下的application标签)
  • --type attr:指定插入的是属性类型
  • -n:设置属性名称
  • -v:设置属性值

执行后查看文件,即可看到两个属性已成功添加到<application>标签中,符合预期格式。


内容的提问来源于stack exchange,提问作者Hellboy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:40:52