将Unity项目改为aar模块

本文详细介绍了如何将Unity项目转换为aar模块,包括Unity导出gradle项目、修改AndroidManifest.xml和build.gradle文件,以及打包和使用aar的步骤。在使用过程中遇到的视频播放警告和摄像头资源释放问题,也提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将Unity项目改为aar模块

1.Unity导出gradle项目

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

2.将gradle项目改为aar模块

2.1 修改AndroidManifest.xml文件

  • 修改application
    将application中的Android:icon删掉

  • 修改启动Activity

<!--将默认开启Activity的过滤删掉-->
<intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
  • 修改minSdkVersion和targetSdkVersion
<!--将此改为你项目的参数-->
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26" />

2.2 修改build.gradle文件

  • 修改apply plugin
apply plugin: 'com.android.library'
  • 删除applicationId

3.打包aar

  • 执行打包命令,可以利用Android Studio的Gradle

执行打包命令

  • 获取aar
    aar包地址:根目录\build\outputs\aar

4. 使用aar

4.1 导入aar

  • 将第3步获取到的aar放在要应用的项目的
    根目录\app\libs

  • 修改模块的build.gradle

  1. 修改aar目录
android {
  //...
  repositories {
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    }
  }
}
  1. 添加aar依赖
implementation(name: 'test-release', ext: 'aar')

至此,Unity改为aar并导入已经完成。

Q&A

  1. Q: unity项目中有视频,导入aar后,应用不能播放视频并存在警告
 W/Unity: AndroidVideoMedia OpenExtractor: file is compressed, not supported

A: 修改build.gradle文件,添加如下代码即可

android{
  //...
  aaptOptions {  noCompress '.unity3d', '.ress', '.resource', '.obb'  }
}
  1. Q:在我的项目中的Unity aar的Activity使用了摄像头,其中的sdk存在摄像头释放问题,在不断的调用Unity aar的时候可能会发生项目闪退的问题。

A:在本身的Unity应用并不存在该问题,因为Unity应用退出会退出进程释放摄像头资源,但是在我的项目中,退出Unity Activity不会退出本身进程,导致摄像头存在释放资源问题,并且使用的sdk只能在本身包名的进程中使用,新建进程并不能使用。
因此,我的解决办法是在本身项目中的其他Activity运行在新建的进程,使用aar的时候会使用本身包名进程,在退出unity项目Activity,该进程会退出,以达到释放摄像头资源的效果。

<activity android:name=".MainActivity"
  android:process=":test"/>
  • 没进入Unity模块时的进程状况

     

    没进入Unity模块时的进程状况

  • 进入Unity模块时的进程状况

     

    进入Unity模块时的进程状况

Unity模块的Activity在本包名的进程中运行,退出Unity模块的Activity时com.unitydemo进程会退出,已达到解决释放资源的问题。

更多unity2018的功能介绍请到paws3d爪爪学院查找。链接https://www.paws3d.com/learn/,也可以加入unity学习讨论群935714213

近期更有资深开发人士直播分享unity开发经验,详情请进入官网或加入QQ群了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值