Unity修改Android Manifest文件遇到的坑
最近在接入字节跳动SDK的时候遇到了一些问题,写下来防止下次再踩坑
编辑器代码
[PostProcessBuild(100)]public static void OnPreprocessBuild( BuildTarget buildTarget, string buildPath){if (buildTarget == BuildTarget.Android){OnPreprocessBuild_android();}}public static void OnPreprocessBuild_android(){Debug.Log("===============================START BUILD=====================================");// 读取xmlstring xmlPath = Application.dataPath + "/Plugins/Android/AndroidManifest.xml";XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(xmlPath);XmlNode manNode = xmlDoc.SelectSingleNode("/manifest");string ns = manNode.GetNamespaceOfPrefix("android");XmlNode application = xmlDoc.SelectSingleNode("/manifest/application");XmlNode provider = xmlDoc.SelectSingleNode("/manifest/application/provider");if(provider != null){string value = provider.Attributes["android:name"].Value;if (value != null && value == "com.yodo1.ttanalytics.TTProvider"){Debug.Log("已经存在TTProvider");return;}}// 自定义XmlElement node = xmlDoc.CreateElement("provider");application.AppendChild(node);node.SetAttribute("name",ns, "com.yodo1.ttanalytics.TTProvider");node.SetAttribute ("authorities", ns, "${applicationId}.ttprovider");node.SetAttribute("exported", ns, "false");node.SetAttribute("multiprocess", ns, "true");xmlDoc.Save(xmlPath);AssetDatabase.Refresh();Debug.Log("===============================END BUILD=====================================");}
遇到的问题
1.如果unity工程中没有Manifest文件,在unity的安装目录下,可以找到unity默认的Manifest文件
2.在需要动态修改的Manifest文件的时候,解析XML文件,添加Node,android:name作为节点的key,android:会被自动注释掉,所以使用这种方式就不会注释掉了:
XmlNode manNode = xmlDoc.SelectSingleNode("/manifest");
string ns = manNode.GetNamespaceOfPrefix("android");
node.SetAttribute("exported", ns, "false");
3.在Android Studio中打jar包
task makeJar(dependsOn: ['compileReleaseJavaWithJavac'], type: Jar) {archiveName = "TTAnalytics.jar" //这个是你打包之后的jar包的名字from('build/intermediates/classes/release') //这是一些资源destinationDir = file('build/libs') //生成的jar的输出路径,我这里是在module对应的build文件夹下面的libs文件夹include('com/yodo1/ttanalytics/**/*.class') //自己module里面的代码,这个写法是包含所有
}
makeJar.dependsOn(build)
Unity修改Android Manifest文件遇到的坑相关推荐
- Android manifest文件中的标签详细介绍
Android manifest文件中的标签详细介绍 概要 每一个Android应用都应该包含一个manifest文件,即AndroidManifest.xml.它包含了程序运行的一些必备信息,比如: ...
- Android - Manifest 文件 详解
Manifest 文件 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/20899281 Manifest可以定义应用程序及其 ...
- Unity Asset Bundles Manifest文件
ManifestFileVersion: 0 CRC: 969836953//校验码 Hashes:AssetFileHash:serializedVersion: 2Hash: 40bfbee8a4 ...
- 自制工具:Cocos2d-x Android.mk文件自动修改器
做cocos2d-x的项目,一般是用电脑进行开发,然后移植到手机平台上.移植到安卓手机需要用eclipse等工具重新编译打包成apk文件.而用eclipse打包的话,要把项目的cpp文件一条条加入到A ...
- 探索使用 Unity 开发 Gear VR App 遇到的坑
原文: What you need to know when building a Gear VR app in Unity 作者: Patrick Catanzariti [CSDN 有奖征稿啦]技 ...
- 修改Android手机内核,绕过反调试
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 O ...
- Android布局文件错误,android 布局文件常见错误
1.'Missing contentDescription attribute on image' in XML 原因:缺少图片描述,在 ADT 16 开始会抛出这个警告,确保开发者为图片添加内容描述 ...
- 浅析一个Manifest文件
在Android平台的应用程序开发过程中,Manifest文件举足轻重.每一个应用程序都要有一个Manifest文件,他配置了应用程序在Android系统上的基本信息. 下面对AOSP中的一个mani ...
- android 反调试 github,修改Android手机内核,绕过反调试
本文博客链接:http://blog..net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 OS Ve ...
最新文章
- 数据结构与算法(3-1)栈(顺序栈、两栈共享空间、链栈、栈的计算器)
- Linux下Nginx+PHP+MySQL配置(图)
- linux用的那国语言,在linux上可以使用什么变成语言
- 改良版class选择器
- 又拍云沈志华:如何打造一款安全的App
- 高薪编程,品牌公司——人往高处走,作为程序员的你够格吗
- 版本产品_飞书首次举办产品发布会 新版本“π”正式发布
- echo 在shell及脚本中显示色彩及闪烁警告效果
- 数据管理系统 php,dms: 数据管理系统;采用mvc模型,存php原生操作无模板引擎;响应式前端框架huiadmin套用,扁平化风格,兼容移动端;...
- C++项目经验(6)——yaml-cpp的安装、报错解决及使用
- php爬虫亚马逊,亚马逊爬虫(亚马逊 api)
- 【嵌入式模块】OLED显示屏模块
- windows7计算机启动修复怎么办,Win7电脑开机提示启动修复无法进入系统怎么办?...
- 同学录退出了历史舞台了吗?
- 如何生成tfrecord
- ZigBee无线温度传感网络设计
- 为什么域名根服务器只能有13台呢?
- BOOST 线程完全攻略 - 基础篇 .
- 【VMware】Ubunt 20.04时间设置
- 生态类型 or 生境类型?16S全长测序判断河流中细菌群落构建机理