unity3d - FileNotFoundException: Temp\gradleOut\build\outputs\bundle\release\gradleOut.aab 不存在
问题描述
您好,我正在使用统一 2018.4.33f1。我在这里提到https://developers.google.com/ar/develop/unity/android-11-build#unity_20193_and_20194将 gradle 版本从 3.4.0 升级到 3.6.0 。当我构建 apk 时,它可以完美运行。对于 google Playstore,我需要 .aab 文件,对于 .aab 文件,它显示错误,我不想恢复 gradle 版本
FileNotFoundException: Temp\gradleOut\build\outputs\bundle\release\gradleOut.aab 不存在 System.IO.File.Move (System.String sourceFileName, System.String destFileName) (at :0) UnityEditor.Android.PostProcessor.Tasks .BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext 上下文) (在 <267278aa48b840c7a0e7281223ea050e>:0) UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext 上下文) (在 <267278aa48b840c07a0e728) UnityEditorea52a0e721 .Android.PostProcessAndroidPlayer.PostProcess(UnityEditor.BuildTarget 目标,System.String stagingAreaData,System.String stagingArea,System.String playerPackage,System.String installPath,System.String companyName,System.String productName,UnityEditor.BuildOptions 选项,UnityEditor。RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <267278aa48b840c7a0e7281223ea050e>:0) UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <267278aa48b840c7a0e7281223ea050e>:0) UnityEditor. PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor .Build.Reporting.BuildReport 报告)(在 C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:288) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (在 C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:1
解决方案
我在这里遇到了同样的问题。
我检查了 gradle 3.4.3 是否允许使用 <queries> 元素进行构建,但它在 armv7 设备中有很多 ANR,所以现在我正在尝试 gradle 3.6.x,正如文档所述(我使用 3.6.4 而不是 3.6.x)。 0 因为它可能有一些修复,但这没关系),我得到了这个新问题。
解决方案在 Lotan 提供的链接末尾:https ://forum.unity.com/threads/bundle-release-launcher-aab-does-not-exist-2019-4-16f1.1025302/#post- 6780950,但没有代码,所以我在这里扩展它。
Unity 生成一个“gradleOut-release.aab”,但是新的 gradle 版本会寻找一个“gradleOut.aab”,所以你需要重命名它:)。
您只需在 launcherTemplate 中更改您的 defaultConfig:
defaultConfig {
minSdkVersion **MINSDKVERSION**
targetSdkVersion **TARGETSDKVERSION**
applicationId '**APPLICATIONID**'
ndk {
abiFilters **ABIFILTERS**
}
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
}
至
defaultConfig {
minSdkVersion **MINSDKVERSION**
targetSdkVersion **TARGETSDKVERSION**
applicationId '**APPLICATIONID**'
ndk {
abiFilters **ABIFILTERS**
}
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
// MLR: rename aab for gradle 3.6.x
tasks.whenTaskAdded { task ->
if (task.name.startsWith("bundle")) {
def renameTaskName = "rename${task.name.capitalize()}Aab"
def flavor = task.name.substring("bundle".length()).uncapitalize()
tasks.create(renameTaskName, Copy) {
def path = "${buildDir}/outputs/bundle/${flavor}/"
from(path)
include "gradleOut-release.aab"
destinationDir file("${buildDir}/outputs/bundle/${flavor}/")
rename "gradleOut-release.aab", "gradleOut.aab"
}
task.finalizedBy(renameTaskName)
}
}
// MLR: End of rename
}
我不确定 3.6.x 是否会修复 ANR(可能是我们 Facebook SDK 9.0.0 的问题)。
推荐阅读
- visual-studio-code - 如何在 VS Code 中选择多个方法?
- gstreamer - Gstreamer 管道无法使用 osxaudiosrc 插件运行
- sql - 模块导出事件 discord.js 的参考错误
- python - 尝试在 Pandas Dataframe 上使用 Regex 时出现 TypeError
- c++ - C++ Primer 5 ed.1.23 从文件流中读取
- c++ - 从目标文件 (.o) 在 macOS 上制作存档文件 (.a 文件)
- mysql - Mysql内部连接查询和存在查询之间的结果顺序不同
- c# - 在 C# 中使用 union 模拟 C++ 嵌套结构
- r - 需要一个包含聚合数据的表:聚合和交叉表
- python - 我的函数没有在我的 txt 文件上写入任何内容并且没有显示错误消息?- 蟒蛇 3