title: unity-2018.4升级到2019.4记录 categories: Unity3d tags: [unity, android, gradle, 升级] date: 2022-04-28 14:27:03 comments: false mathjax: true toc: true
unity-2018.4升级到2019.4记录
前篇
- Gradle for Android - https://docs.unity3d.com/cn/2019.4/Manual/android-gradle-overview.html
Android 构建说明
在安卓方面, 2018.4 和 2019.4 的还是有点差异的
构建工具升级
升级 Gradle
升级 NDK
JDK 不变
app gradle 修改
2019 也就是 launcherTemplate.gradle 文件
-
unity 工程根目录需要退 3 级别, 因为这个 gradle 在 android 工程里已经在 launcher 模块中了, 而 2018 则是直接在 android 工程根目录 def projDir = String.format("../../..")
def projDir = String.format("../..")
-
引用 unityLibrary 模块中引用的 jar 因为在 Plugins\Android 目录里的 jar (也就是一些 第三方 sdk 或者 自己的 java 代码生成的 jar), 都将会生成到 unityLibrary 模块中的 libs 目录下, launcher 模块默认只引用了 unityLibrary 模块 dependencies {
implementation project(':unityLibrary')
implementation fileTree(dir: String.format("%s/libs", project(':unityLibrary').getProjectDir().toString()), include: ['*.jar'])
}
maven 仓库修改
2019 也就是 baseProjectTemplate.gradle 文件
清单文件修改
2019 包含两个模块的清单文件
-
LauncherManifest.xml 也就是之前版本 AndroidManifest.xml 内容全部移到这个文件中, 作为 应用模块 的清单文件 为啥一定要在 应用模块 呢? 因为这个清单文件里面有些内容是 gradle 工具动态配置的, 如: 包名, 而 包名 又必须是在应用模块才能获取到. -
AndroidManifest.xml 这个文件一定要有, 不然默认 unity 会使用默认的清单文件, 里面有指定启动 activity, 会覆盖 LauncherManifest.xml 中指定的启动 activity <?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player" // 这个也可以删掉, 因为库模块不需要包名
xmlns:tools="http://schemas.android.com/tools">
<application>
</application>
</manifest>
app 名字/icon 修改
-
默认 icon 是 @mipmap/app_icon , 而是用 as 生成的 icon 这是 ic_launcher <application android:label="@string/app_name" android:icon="@mipmap/ic_launcher">
</application>
修改思路
- 导出 Android 工程对比
- 打出的 apk 包反编译对比
|