1.Unity导出gradle项目

由负责Unity开发的同事将Unity项目导出gradle项目。

2.将gradle项目改为aar模块
2.1 修改AndroidManifest.xml文件
修改application
将application中的Android:icon删掉

修改启动Activity

ä¿®æ¹minSdkVersionåtargetSdkVersion

2.2 修改build.gradle文件
修改apply plugin
apply plugin: 'com.android.library'
删除applicationId
3.打包aar
执行打包命令,可以利用Android Studio的Gradle

执行打包命令

获取aar
aar包地址:根目录buildoutputsaar

  1. 使用aar
    4.1 导入aar

将第3步获取到的aar放在要应用的项目的
根目录applibs

修改模块的build.gradle

修改aar目录
android {
//...
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
}
添加aar依赖
implementation(name: 'test-release', ext: 'aar')
至此,Unity改为aar并导入已经完成。

Q&A
Q: unity项目中有视频,导入aar后,应用不能播放视频并存在警告
W/Unity: AndroidVideoMedia OpenExtractor: file is compressed, not supported
A: 修改build.gradle文件,添加如下代码即可

android{
//...
aaptOptions { noCompress '.unity3d', '.ress', '.resource', '.obb' }
}
Q:在我的项目中的Unity aar的Activity使用了摄像头,其中的sdk存在摄像头释放问题,在不断的调用Unity aar的时候可能会发生项目闪退的问题。
A:在本身的Unity应用并不存在该问题,因为Unity应用退出会退出进程释放摄像头资源,但是在我的项目中,退出Unity Activity不会退出本身进程,导致摄像头存在释放资源问题,并且使用的sdk只能在本身包名的进程中使用,新建进程并不能使用。
因此,我的解决办法是在本身项目中的其他Activity运行在新建的进程,使用aar的时候会使用本身包名进程,在退出unity项目Activity,该进程会退出,以达到释放摄像头资源的效果。

android:process=":test"/>
没进入Unity模块时的进程状况
没进入Unity模块时的进程状况
进入Unity模块时的进程状况
进入Unity模块时的进程状况
Unity模块的Activity在本包名的进程中运行,退出Unity模块的Activity时com.unitydemo进程会退出,已达到解决释放资源的问题。
更多unity2018的功能介绍请到paws3d爪爪学院查找。

将Unity项目改为aar模块相关推荐

  1. unity 项目实践经验 和 架构体系

    GameRes游资网授权发布 文 / 吴秦(Tyler) 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: ...

  2. Unity项目接入IOS的Admob Native(原生视频广告) IOS SDK

    实现的功能与Unity项目接入Android的Admob Native(原生视频广告) SDK(二.AS导出aar)相同,但IOS的操作与Android完全不同,接入IOS的SDK大概实现流程是: 1 ...

  3. idea怎么给项目改名_IDEA相关配置【java项目改造成web项目】

    在平时写项目学习java的时候,有没有这么一种情况:我们一开始建立了一个普通的java项目,但是随着我们编码的进行,发现项目需要部署到Tomcat服务器上运行测试.此时有两种解决方案:[1]创建一个w ...

  4. 2021Unity学习教程:本地下载的Unity项目怎么打开?

    2021Unity学习教程:Unity项目怎么打开? 前言:很多人想通过下载学习Unity项目资源来快速上手Unity,但初学者有时在打开文件这一步就遇到了问题.其实,Unity项目工程需要在Unit ...

  5. unity 项目开发——浅谈设计模式的六大原则(一)

    目录 前言 首先,六大原则是谁? 其次,为什么需要学习这六大原则? 正文 一.单一职责原则 示例: 因此我们需要进行拆分,根据具体的职能可将其具体拆分如下: Unity 单一职责原则 二.开闭原则 U ...

  6. 笔记23 Unity项目:超级玛丽

    笔记23 Unity项目:超级玛丽 拖放地图,裁剪精灵,形成跑步动画,精灵渲染器 摄像机跟随+代码CameraControl 玛里奥动画 给马里奥.地面等添加碰撞器.刚体(注意是2D的!) 添加音乐播 ...

  7. 【狂云歌之unity_vr】unity项目持续集成dailybuild以及多平台打包管理

    [狂云歌之unity_vr]unity项目持续集成dailybuild以及多平台打包管理 前言  持续集成的意义就不多说了.unity通常打包一般就直接build&run,但是在实际项目中,往 ...

  8. 【狂云歌之unity_vr】unity项目持续集成cibuilddailybuild

    [狂云歌之unity_vr]unity项目持续集成dailybuild以及多平台打包管理 前言  持续集成的意义就不多说了.unity通常打包一般就直接build&run,但是在实际项目中,往 ...

  9. Unity 项目中资源管理(续)

    转载自:https://zhuanlan.zhihu.com/p/28324190 上次和大家分享了Unity项目中的资源管理主要讲资源配置以及资源配置工具,Unity资源配置在资源管理中处于基础地位 ...

  10. Unity项目如何组织目录结构

    前言 组织好项目的目录结构,是维护项目的很重要的一个点,我们学习别人源码,了解别人的设计思路都是从目录结构开始,一个清晰的目录结构,对项目开发维护,项目管理来说非常的重要,目录维护的好,大家在一起工作 ...

最新文章

  1. ElasticSearch _xpack用户管理
  2. 使用Deinstall专用工具删除Oracle Database
  3. mysql基本数据库操作
  4. 优秀程序员的秘密|宝贵经验分享
  5. 【转载】#323 - A Generic Class is a Template for a Class
  6. I2C总线时序模拟(二)-加深理解总线协议
  7. oracle hcm 发展,甲骨文发布Oracle HCM Cloud云服务 呈现三大亮点
  8. Lucene全文检索_分词_复杂搜索_中文分词器
  9. ASP.NET母版页和内容页之间如何互相传值?
  10. 计算机组成原理 唐朔飞笔记,计算机组成原理笔记(唐朔飞版)
  11. 宿舍管理系统c语言程序代码,宿舍管理系统(c语言版)
  12. 小程序和H5 之间的通信
  13. PayPal的钱如何提现?PayPal商家终于可以松口气了!
  14. python数学符号读法大全_常用数学符号读法大全
  15. 关于C语言中的绝对值函数
  16. 苹果cms采集接口配置教程
  17. the sip module implements API v12.0 to v12.8 but the PyQt5.QtGui module requires API v12.9
  18. mysqlcount效率,总结到位
  19. Markdown 教程(三)Markdown 段落
  20. 一个列子演示java中弱引用的回收时机

热门文章

  1. NumPy库---介绍
  2. Python数据结构,线性结构:栈、队列、双端队列、列表
  3. 20. 有效的括号 python
  4. 167.两数之和II-输入有序数组
  5. 实高斯随机向量与复高斯随机向量
  6. c++常用备忘(持续更新)
  7. Nodejs自带模块querystring的使用简介
  8. 京东极速版上线,“杀”入三四五六。。。线市场,一起瞅瞅
  9. 使用QueenSono从ICMP提取数据
  10. 数字值太大,plsql显示不全的设置