最近在接入字节跳动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文件遇到的坑相关推荐

  1. Android manifest文件中的标签详细介绍

    Android manifest文件中的标签详细介绍 概要 每一个Android应用都应该包含一个manifest文件,即AndroidManifest.xml.它包含了程序运行的一些必备信息,比如: ...

  2. Android - Manifest 文件 详解

    Manifest 文件 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/20899281 Manifest可以定义应用程序及其 ...

  3. Unity Asset Bundles Manifest文件

    ManifestFileVersion: 0 CRC: 969836953//校验码 Hashes:AssetFileHash:serializedVersion: 2Hash: 40bfbee8a4 ...

  4. 自制工具:Cocos2d-x Android.mk文件自动修改器

    做cocos2d-x的项目,一般是用电脑进行开发,然后移植到手机平台上.移植到安卓手机需要用eclipse等工具重新编译打包成apk文件.而用eclipse打包的话,要把项目的cpp文件一条条加入到A ...

  5. 探索使用 Unity 开发 Gear VR App 遇到的坑

    原文: What you need to know when building a Gear VR app in Unity 作者: Patrick Catanzariti [CSDN 有奖征稿啦]技 ...

  6. 修改Android手机内核,绕过反调试

    本文博客链接:http://blog.csdn.net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 O ...

  7. Android布局文件错误,android 布局文件常见错误

    1.'Missing contentDescription attribute on image' in XML 原因:缺少图片描述,在 ADT 16 开始会抛出这个警告,确保开发者为图片添加内容描述 ...

  8. 浅析一个Manifest文件

    在Android平台的应用程序开发过程中,Manifest文件举足轻重.每一个应用程序都要有一个Manifest文件,他配置了应用程序在Android系统上的基本信息. 下面对AOSP中的一个mani ...

  9. android 反调试 github,修改Android手机内核,绕过反调试

    本文博客链接:http://blog..net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 OS Ve ...

最新文章

  1. 数据结构与算法(3-1)栈(顺序栈、两栈共享空间、链栈、栈的计算器)
  2. Linux下Nginx+PHP+MySQL配置(图)
  3. linux用的那国语言,在linux上可以使用什么变成语言
  4. 改良版class选择器
  5. 又拍云沈志华:如何打造一款安全的App
  6. 高薪编程,品牌公司——人往高处走,作为程序员的你够格吗
  7. 版本产品_飞书首次举办产品发布会 新版本“π”正式发布
  8. echo 在shell及脚本中显示色彩及闪烁警告效果
  9. 数据管理系统 php,dms: 数据管理系统;采用mvc模型,存php原生操作无模板引擎;响应式前端框架huiadmin套用,扁平化风格,兼容移动端;...
  10. C++项目经验(6)——yaml-cpp的安装、报错解决及使用
  11. php爬虫亚马逊,亚马逊爬虫(亚马逊 api)
  12. 【嵌入式模块】OLED显示屏模块
  13. windows7计算机启动修复怎么办,Win7电脑开机提示启动修复无法进入系统怎么办?...
  14. 同学录退出了历史舞台了吗?
  15. 如何生成tfrecord
  16. ZigBee无线温度传感网络设计
  17. 为什么域名根服务器只能有13台呢?
  18. BOOST 线程完全攻略 - 基础篇 .
  19. 【VMware】Ubunt 20.04时间设置
  20. 生态类型 or 生境类型?16S全长测序判断河流中细菌群落构建机理

热门文章

  1. Pytorch 学习(6):Pytorch中的torch.nn Convolution Layers 卷积层参数初始化
  2. 声音不止动听——B超是个什么玩意儿
  3. 热血三国1年2500w
  4. Java学习之BorderLayout使用
  5. CZT变换的原理及matlab应用
  6. 光子神经网络的应用及发展概述
  7. vue父子组件动态传值的几种方式
  8. 如何在Mac上测试宽带的网速(上传和下载速度)和网络质量
  9. 练手项目1笔记 day02AnglaJS
  10. 小程序 uni-app picker-view改变选中行上下边框样式