目录
操作四:移动资源Addressables资源文件,按照以下步骤进行操作
上传谷歌商店报错提示:
您的 App Bundle 包含的以下配置会使应用的初始安装大小超过 150 MB 的上限:arm64-v8a,armeabi-v7a
对data.unity3d文件进行缩减
我这里使用了Addressables资源管理方式,对data.unity3d文件的缩减
参考文章:Addressables的使用
按照文章中的操作创建Addressables资源即可,这里建议创建路径使用默认路径,避免出错
从谷歌商店下载应用资源的方式有三种:
- install-time:安装应用时会同时下载并安装到手机里的资源。
- fast-follow:安装完应用之后之后会立刻下载下载,如果安装完应用立刻打开,可能会出现资源未下载完成的情况。
- on-demand:安装应用之后并不会自动下载,而是需要游戏从服务器上下载。
我使用解决方案(install-time方法)
这里我用的是install-time方法
打包出来的aab文件进行解压(将.aab后缀改为.zip即可)结构如下图,其中base文件夹中的文件就是我们超出150M的文件
其中data.unity3d文件占用存储空间最大,data.unity3d文件中包含了游戏中的用到的场景资源及unity初始化的相关数据,如果将文件作为PAD资源包下载到手机上会出现unity初始化失败的情况(报错提示:Unable to Initialize Unity Engine),所以我们要将data.unity3d文件夹中的场景资源拆分出来(我是用Addressables资源管理方式进行拆分的),将其中Addressables资源文件作为PAD资源包下载到手机上
以下为解决方案操作步骤及操作中可能出现的问题
install-time方法操作前注意事项
- AndroidStudio版本要在4.0以上
- AndroidStudio工程名称中不要出现空格或其他字符,避免创建Module失败的可能
- complieSdkVersion 和 targetSdkVersion一定要不小于30
- gradle版本不应小于4.0
操作一:将项目浏览方式从Android切换为Project
操作二:创建Android Library
在菜单栏中找到 File → New → New Module
选择Android Library并将Module name改为 install-time-asset_pack 点击 Finish按钮创建
创建出现报错:
Build file '/Users/****/Nightclub/install-time-asset_pack/build.gradle' line: 2
Plugin [id: 'com.android.library'] was not found in any of the following sources:
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'com.android.library'] was not found in any of the following sources:- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
如果出现异常的报错,解决方案如下:
选择项目中创建的install-time-asset_pack文件夹中的build.gradle
将以代码 plugins { id 'com.android.library' } 改为
apply plugin: 'com.android.library'
操作三:在相应的脚本中添加代码
1.在install-time-asset_pack文件夹中的build.gradle中添加以下代码
apply plugin: 'com.android.asset-pack' assetPack{ packName = "install_time_asset_pack" dynamicDelivery{ deliveryType = "install-time" //安装时进行PAD资源分发 } }
2.确保setting.gradle中Module中引用正常,如果引用不正确会出现资源下载丢失的情况
include ':install-time-asset_pack'
gradle.properities中是否添加了AndroidX
android.useAndroidX=true android.enableJetifier=true
3.在Launcher中的build.gradle中添加一下一下内容
在dependencies中添加依赖项
implementation 'com.google.android.play:core:1.10.0'//PAD资源分发依赖项
在android下添加assetPacks关键字
assetPacks = [":install-time-asset_pack"]
注意:要添加在Launcher的build.gradle,否在会出现一下报错
> Could not find method implementation() for arguments [com.google.android.play:core:1.10.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
注意:如果项目中加入第三方SDK应将UnityLauncher的build.gradle中的implementation 'com.google.android.play:core:1.10.0'PAD资源分发依赖项删除掉
操作四:移动资源Addressables资源文件,按照以下步骤进行操作
1.查看install-time-asset_pack中是否有assets文件如下图,如果没有需要创建
2.将UnityLauncher中assets文件夹下的Addressables资源移动到install-time-asset_pack的assets文件夹下,注意移动时要和原来文件夹的结构相同如下图,结构为assets/aa/Android(这里是移动过去,不要复制一份过去,要确保只有一个)