Unity2018使用Gradle打包Android

https://docs.unity3d.com/2018.4/Documentation/Manual/android-gradle-overview.html

所用版本unity2018.4.19

打包流程:使用unity的gradle导出工程,在导出的工程中添加androidstudio生成的库工程以及做其他的设置,使用gradle打包最终的apk。

下面是在这个过程中遇到的一些问题进行记录。

1.如果需要开启自定义的.gradle文件,要勾选Playersetting中android的custom gradle template:

Unity2018使用Gradle打包Android_第1张图片

会自动生成一个 mainTemplate.gradle 文件,然后对这个文件进行自定义的修改(适配后续需要添加的android库工程,比如要去远端下载库文件,比如导入googleservice插件)

2.修改内容mainTemplate.gradle :

左边是默认生成的,后边是修改的:

可以在对应的模块内增加内容;也可以删除他本身的宏,使用自己写的,对比下面的第二张第三张图;

在导出的过程中,**XXXX**中的都会被的设置上对应的值

Unity2018使用Gradle打包Android_第2张图片

Unity2018使用Gradle打包Android_第3张图片

如果不想用**XXXX**(Unity Editor中Playersetting中设置的值)就直接替换了就可以,比如上述的minsdkversion targetsdkversion applicationid,以及下面的versionCode和versionName:

3.添加到plugin/android下面的库工程根目录必须有:

1.包含文件 project.properties 

内容:

android.library=true

2.包含一个AndroidManifest.xml

如果文件夹不包含  project.properties ,那么unity在导出过程后不会包含此文件夹,也就是不参与导出过程。

如果文件夹包含project.properties,但是不包含AndroidManifest.xml,导出会报错。一般在AndroidStudio中创建的库工程,目录结构不是这样的,所以不能直接放到Unity中使用。

Unity2018使用Gradle打包Android_第4张图片

4.导出的过程中,中间文件夹都在Temp目录下。

如果是使用gradle进行build生成apk,有问题也可以在这个目录下找到中间的gradle工程,可以使用androidstudio打开,看看有什么问题。

 

导出成功后,就可以添加一些库工程,配置好了以后使用gradle打包,都可以用命令行实现。unity导出工程也可以用命令行。最终实现自动打包。

 

 

 


遇到的一些问题:

1.targetsdkversion设置

unity使用的android sdk版本是29,但是sdk的目标level是28,打出的apk在android29的系统中崩溃。

所以unity中targetsdkversion也是设置成28

 

2.Api Compatibility Level如何选择

https://zhuanlan.zhihu.com/p/44559662

通过Player设置中的Api Compatibility Level选项为Player构建选择.NET配置。Unity支持的两个.NET配置是:

  • .NET Standard 2.0
  • .NET 4.x.

.NET Standard 2.0

配置与.NET Foundation发布的同名配置匹配。这个配置非常适合新的Unity项目。它比.NET 4.x小,适用于内存受限的平台,如手机。此外,此配置适用于Unity支持的所有平台。如果你为Unity开发dll库,你也应该选择这个配置选项。

 

 

.NET 4.x

配置提供最新的.NET 4 API,包括.NET Framework类库中提供的所有代码。它也支持所有.NET Standard 2.0配置,因此它可以与基于.NET Standard 2.0构建的托管程序集一起使用。虽然它提供了大量API的访问,但某些API无法在所有平台上运行。如果你的项目需要.NET Standard中未公开的功能或具有遗留代码,.NET 4.x可能是一个不错的选择。

你可能感兴趣的:(Unity)