前提:Windows电脑,unity3d2021.3.11f1 长期支持版本LTS

(图片来源网络,侵删)
先说说遇到的问题:构建apk时卡半天,然后出现报错,在console窗口看详细问题,因为问题已经解决了,错误日志被刷掉了,这里借用一个国外大佬的错误信息,除了版本,其他和我的基本一样。又需要的也可以去看看原文(可能需要科学上网):java - Unity 2021.3.4f1 Gradle Build failed - Stack Overflow
error1:

(图片来源网络,侵删)
> Starting a Gradle Daemon, 1 > incompatible Daemon could not be > reused, use --status for details > > > Configure project :launcher WARNING: The option setting > 'android.enableR8=false' is > deprecated. It will be removed in > version 5.0 of the Android Gradle > plugin. You will no longer be able to > disable R8 Exception while marshalling > C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. > Probably the SDK is read-only > Exception while marshalling C:\Program > Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. > Probably the SDK is read-only > > > Task :unityLibrary:preBuild UP-TO-DATE > > Task :launcher:preBuild UP-TO-DATE > > Task :launcher:preReleaseBuild UP-TO-DATE > > Task :unityLibrary:preReleaseBuild UP-TO-DATE > > Task :unityLibrary:compileReleaseAidl > NO-SOURCE > > Task :unityLibrary:packageReleaseRenderscript > NO-SOURCE > > Task :unityLibrary:compileReleaseRenderscript > NO-SOURCE > > Task :unityLibrary:generateReleaseResValues > > Task :unityLibrary:generateReleaseResources > > Task :launcher:generateReleaseBuildConfig > > Task :launcher:compileReleaseAidl NO-SOURCE > > Task :launcher:compileReleaseRenderscript > NO-SOURCE > > Task :launcher:generateReleaseResValues > > Task :launcher:generateReleaseResources > > Task :launcher:createReleaseCompatibleScreenManifests > > Task :launcher:extractDeepLinksRelease > > Task :launcher:prepareLintJar > > Task :launcher:checkReleaseDuplicateClasses > > Task :unityLibrary:packageReleaseResources > > Task :unityLibrary:extractDeepLinksRelease > > Task :unityLibrary:processReleaseManifest > > Task :launcher:javaPreCompileRelease > > Task :launcher:processReleaseManifest > > Task :launcher:mergeReleaseShaders > > Task :launcher:compileReleaseShaders NO-SOURCE > > Task :launcher:generateReleaseAssets UP-TO-DATE > > Task :launcher:processReleaseJavaRes NO-SOURCE > > Task :launcher:collectReleaseDependencies > > Task :launcher:sdkReleaseDependencyData > > Task :launcher:mergeReleaseJniLibFolders > > Task :launcher:validateSigningRelease > > Task :launcher:desugarReleaseFileDependencies > > Task :launcher:mergeReleaseResources > > Task :launcher:mergeExtDexRelease > > Task :unityLibrary:generateReleaseBuildConfig > > Task :unityLibrary:compileReleaseLibraryResources > > Task :unityLibrary:mergeReleaseShaders > > Task :unityLibrary:compileReleaseShaders > NO-SOURCE > > Task :unityLibrary:generateReleaseAssets > UP-TO-DATE > > Task :unityLibrary:packageReleaseAssets > > Task :unityLibrary:prepareLintJarForPublish > > Task :unityLibrary:processReleaseJavaRes > NO-SOURCE > > Task :unityLibrary:bundleLibResRelease > NO-SOURCE > > Task :launcher:mergeReleaseAssets > > Task :unityLibrary:mergeReleaseJniLibFolders > > Task :unityLibrary:parseReleaseLocalResources > > Task :launcher:mergeReleaseJavaResource > > Task :unityLibrary:javaPreCompileRelease > > Task :unityLibrary:mergeReleaseNativeLibs > > Task :unityLibrary:stripReleaseDebugSymbols > > Task :unityLibrary:copyReleaseJniLibsProjectOnly > > Task :unityLibrary:generateReleaseRFile > > Task :launcher:processReleaseResources > > Task :launcher:mergeReleaseNativeLibs > > Task :launcher:stripReleaseDebugSymbols > > > Task :unityLibrary:compileReleaseJavaWithJavac > > > Task :unityLibrary:bundleLibRuntimeToJarRelease > > Task :unityLibrary:bundleLibCompileToJarRelease > > Task :launcher:compileReleaseJavaWithJavac > > Task :launcher:compileReleaseSources > > Task :launcher:lintVitalRelease > > Task :launcher:dexBuilderRelease > > Task :launcher:mergeDexRelease > > Task :launcher:packageRelease FAILED 45 actionable tasks: 45 executed > > UnityEditor.GenericMenu:CatchMenu > (object,string[],int)
error2:
Note: D:\Unity Development\EndMan 1\EndMan1\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: D:\Unity Development\EndMan 1\EndMan1\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity\androidnotifications\UnityNotificationManager.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':launcher:packageRelease'. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "C:\Users\Samprit Hazra\.android\debug.keystore": Invalid keystore format * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 2m 25s Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 UnityEditor.GenericMenu:CatchMenu (object,string[],int)
error3:
CommandInvokationFailure: Gradle build failed. C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease" stderr[ Note: D:\Unity Development\EndMan 1\EndMan1\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: D:\Unity Development\EndMan 1\EndMan1\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity\androidnotifications\UnityNotificationManager.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':launcher:packageRelease'. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "C:\Users\Samprit Hazra\.android\debug.keystore": Invalid keystore format * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 2m 25s Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 ] stdout[ Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details > Configure project :launcher WARNING: The option setting 'android.enableR8=false' is deprecated. It will be removed in version 5.0 of the Android Gradle plugin. You will no longer be able to disable R8 Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only > Task :unityLibrary:preBuild UP-TO-DATE > Task :launcher:preBuild UP-TO-DATE > Task :launcher:preReleaseBuild UP-TO-DATE > Task :unityLibrary:preReleaseBuild UP-TO-DATE > Task :unityLibrary:compileReleaseAidl NO-SOURCE > Task :unityLibrary:packageReleaseRenderscript NO-SOURCE > Task :unityLibrary:compileReleaseRenderscript NO-SOURCE > Task :unityLibrary:generateReleaseResValues > Task :unityLibrary:generateReleaseResources > Task :launcher:generateReleaseBuildConfig > Task :launcher:compileReleaseAidl NO-SOURCE > Task :launcher:compileReleaseRenderscript NO-SOURCE > Task :launcher:generateReleaseResValues > Task :launcher:generateReleaseResources > Task :launcher:createReleaseCompatibleScreenManifests > Task :launcher:extractDeepLinksRelease > Task :launcher:prepareLintJar > Task :launcher:checkReleaseDuplicateClasses > Task :unityLibrary:packageReleaseResources > Task :unityLibrary:extractDeepLinksRelease > Task :unityLibrary:processReleaseManifest > Task :launcher:javaPreCompileRelease > Task :launcher:processReleaseManifest > Task :launcher:mergeReleaseShaders > Task :launcher:compileReleaseShaders NO-SOURCE > Task :launcher:generateReleaseAssets UP-TO-DATE > Task :launcher:processReleaseJavaRes NO-SOURCE > Task :launcher:collectReleaseDependencies > Task :launcher:sdkReleaseDependencyData > Task :launcher:mergeReleaseJniLibFolders > Task :launcher:validateSigningRelease > Task :launcher:desugarReleaseFileDependencies > Task :launcher:mergeReleaseResources > Task :launcher:mergeExtDexRelease > Task :unityLibrary:generateReleaseBuildConfig > Task :unityLibrary:compileReleaseLibraryResources > Task :unityLibrary:mergeReleaseShaders > Task :unityLibrary:compileReleaseShaders NO-SOURCE > Task :unityLibrary:generateReleaseAssets UP-TO-DATE > Task :unityLibrary:packageReleaseAssets > Task :unityLibrary:prepareLintJarForPublish > Task :unityLibrary:processReleaseJavaRes NO-SOURCE > Task :unityLibrary:bundleLibResRelease NO-SOURCE > Task :launcher:mergeReleaseAssets > Task :unityLibrary:mergeReleaseJniLibFolders > Task :unityLibrary:parseReleaseLocalResources > Task :launcher:mergeReleaseJavaResource > Task :unityLibrary:javaPreCompileRelease > Task :unityLibrary:mergeReleaseNativeLibs > Task :unityLibrary:stripReleaseDebugSymbols > Task :unityLibrary:copyReleaseJniLibsProjectOnly > Task :unityLibrary:generateReleaseRFile > Task :launcher:processReleaseResources > Task :launcher:mergeReleaseNativeLibs > Task :launcher:stripReleaseDebugSymbols > Task :unityLibrary:compileReleaseJavaWithJavac > Task :unityLibrary:bundleLibRuntimeToJarRelease > Task :unityLibrary:bundleLibCompileToJarRelease > Task :launcher:compileReleaseJavaWithJavac > Task :launcher:compileReleaseSources > Task :launcher:lintVitalRelease > Task :launcher:dexBuilderRelease > Task :launcher:mergeDexRelease > Task :launcher:packageRelease FAILED 45 actionable tasks: 45 executed ] exit code: 1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at :0) UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at :0) UnityEditor.Android.Command.Run (System.String command, System.String args, System.String workingdir, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at :0) UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1[T] progress, System.String error) (at :0) UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, Unity.Android.Gradle.AndroidGradle androidGradle, System.String workingdir, System.String task, System.Action`1[T] progress) (at :0) Rethrow as GradleInvokationException: Gradle build failed UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, Unity.Android.Gradle.AndroidGradle androidGradle, System.String workingdir, System.String task, System.Action`1[T] progress) (at :0) UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at :0) UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at :0) Rethrow as BuildFailedException: Exception of type 'UnityEditor.Build.BuildFailedException' was thrown. UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message, System.Exception ex) (at :0) UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at :0) UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, AndroidPlayerBuildProgram.Data.AndroidPlayerBuildProgramOutput buildProgramOutput) (at :0) UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at :0) UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.Int32 subtarget, System.String installPath,
对比一下上面的错误日志,看看是不是和你的一样,日志是不是眼花缭乱,其实去里面找关键信息就行了,以下就是这次问题的原因
* What went wrong: Execution failed for task ':launcher:packageRelease'. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "C:\Users\Samprit Hazra\.android\debug.keystore": Invalid keystore format
大致意思就是无法从存储“C:\Users\Samprit Hazra.android\debug.keystore”读取密钥 AndroidDebugKey:密钥库格式无效。
那么知道了原因就好解决了,直接来个暴力解决方法,既然他无效,那我们就把他干掉
直接删除debug.keystore。
先退出unity3d,在退出之前先从console窗口里的日志中找到debug.keystore所在的路径,比如上面这个C:\Users\Samprit Hazra.android\debug.keystore,然后直接Delete他。
删完后重启unity3d,再次打包apk,你就会发现OK了!