直接导出APK
导出
如果没有做一些特别插件,可以直接导出APK并测试
步骤:
- File --> Build Settings
- 选择Android平台(Platform),这步需要一点时间,之后不切换平台的话,无需重复选择
- 检查Scenes In Build,看看哪些场景需要打包
- 不要选Export Project
- 点击“Build” or “Build And Run”
- 选择保存路径和输入文件名
- Save
添加 AAR 库
如果你的项目需要添加 Android 的AAR库,将其放到:
Assets/Plugins/Android
下
添加 Android resource
等于将你的Android工程的res目录放到
Assets/Plugins/Android
个性化 AndroidManifest
某些Android的AAR库需要额外的权限,
但是AAR库的 AndroidManifest 并不会影响APK文件的AndroidManifest。
所以你需要编辑一个自己的AndroidManifest并放到
Assets/Plugins/Android
这个AndroidManifest会被合并到最终的APK文件的 AndroidManifest 中
个性化Gradle
如果你需要在build.gradle添加一些dependences 或者 sth else。
这通常是你添加某些插件或者Android外部库时会碰到的需求。
- Project Settings -> Player -> 选择安卓平台 -> Publishing Settings -> Build
- 勾选 Custom Gradle Template
- 用文本编辑器编辑显示的文件
使用非Unity自带的Gradle
在当前版本由于我用了androidx 代替了android.support.v4,所以需要使用gradle 5.4.1,而目前自带版本是gradle 5.1.1。
打包时会报错,请留意出错信息
在Unity->Prefereces->External Tools 中指定Gradle路径
如果是Android Studio自动安装的,一般在 ~/.gradle/wrapper/dists/
注意这个目录是隐藏的,看到隐藏文件的快捷键为 shift+cmd+.
自定义gradle.properties文件
由于用了androidx,需要修改gradle.properties
随便找个 Assets 中的 Editor 文件夹扔进去
需要 using UnityEditor.Android;
public class AndroidPostBuildProcessor : IPostGenerateGradleAndroidProject
{
public int callbackOrder
{
get
{
return 999;
}
}
void IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject(string path)
{
UnityEngine.Debug.Log("AndroidPostBuildProcessor: gradle.properties Bulid path : " + path);
string gradlePropertiesFile = path + "/gradle.properties";
if (File.Exists(gradlePropertiesFile))
{
UnityEngine.Debug.Log("AndroidPostBuildProcessor: delete : " + gradlePropertiesFile);
File.Delete(gradlePropertiesFile);
}
StreamWriter writer = File.CreateText(gradlePropertiesFile);
writer.WriteLine("org.gradle.jvmargs=-Xmx4096M"); // 这句是unity自己的
// 参考 https://developer.android.com/jetpack/androidx
writer.WriteLine("android.useAndroidX=true"); // 加上这句才能用androidx
writer.WriteLine("android.enableJetifier=true"); // 加上这句,Android插件会重写其二进制文件,自动迁移现有的第三方库以使用 AndroidX
// writer.WriteLine("android.enableR8=true");
writer.Flush();
writer.Close();
}
}
导出Android工程
这是为了进一步添加一些个性化的Android功能时,不得不在安卓工程上做进一步加工。
- File --> Build Settings
- 选择Android平台(Platform),这步需要一点时间,之后不切换平台的话,无需重复选择
- 检查Scenes In Build,看看哪些场景需要打包
- 选Export Project
- 点击 Export
- 选择保存路径,项目名就是你的Unity工程名
- Choose
注意如果覆盖导出,同名文件会被覆盖,但已删除的资源是不会被删除的