Search Unity

"Random" Gradle build error: java.io.IOException: Could not create empty folder

Discussion in 'Android' started by JohnTube, May 26, 2017.

  1. JohnTube

    JohnTube

    Joined:
    Sep 29, 2014
    Posts:
    66
    I'm using new gradle build and custom mainTemplate.gradle and library.gradle files to build Android apks for my game.
    Most of the time the build is successful as I managed to fix the issues with Manifests or resources or dependencies.
    However sometimes I get this error:

    java.io.IOException: Could not create empty folder

    It occurs every time on a different gradle task for a different library.
    In some cases, closing and opening Unity or removing Temp folder solves this.

    Any idea how to solve this?
     
    Last edited: May 26, 2017
    proa1 likes this.
  2. dm_bond

    dm_bond

    Joined:
    Sep 19, 2011
    Posts:
    62

    Android PostProcess task "Creating staging area" took 11.5059 ms
    Android PostProcess task "Generating Build Id" took 3.1051 ms
    Android PostProcess task "Preparing Unity resources" took 41.6555 ms
    Android PostProcess task "Splitting assets" took 10.6974 ms
    Android PostProcess task "Processing OBB assets" took 0.3076 ms
    Android PostProcess task "Preparing Unity libraries" took 206.6238 ms
    OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details.
    UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(LogType, Object)
    UnityEngine.Debug:LogWarning(Object)
    UnityEditor.Android.PostProcessor.Tasks.PrepareUserResources:Execute(PostProcessorContext)
    UnityEditor.Android.PostProcessor.PostProcessRunner:RunAllTasks(PostProcessorContext)
    UnityEditor.Android.PostProcessAndroidPlayer:postProcess(BuildTarget, String, String, String, String, String, String, BuildOptions, RuntimeClassRegistry, BuildReport)
    UnityEditor.Android.AndroidBuildPostprocessor:postProcess(BuildPostProcessArgs)
    UnityEditor.PostprocessBuildPlayer:postprocess(BuildTargetGroup, BuildTarget, String, String, String, Int32, Int32, BuildOptions, RuntimeClassRegistry, BuildReport) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline\PostprocessBuildPlayer.cs:263)
    UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions, Boolean)
    UnityEditor.BuildPipeline:BuildPlayerInternal(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\artifacts\generated\common\editor\BuildPipelineBindings.gen.cs:331)
    UnityEditor.BuildPipeline:BuildPlayer(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\artifacts\generated\common\editor\BuildPipelineBindings.gen.cs:232)
    UnityEditor.BuildPipeline:BuildPlayer(BuildPlayerOptions) (at C:\buildslave\unity\build\artifacts\generated\common\editor\BuildPipelineBindings.gen.cs:210)
    UnityEditor.BuildPipeline:BuildPlayer(String[], String, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\artifacts\generated\common\editor\BuildPipelineBindings.gen.cs:204)
    BuildMenu:Build(BuildTarget, Boolean, Boolean, Boolean) (at Assets\URSE\Editor\BuildMenu.cs:338)
    BuildMenu:BuildRunAndroid() (at Assets\URSE\Editor\BuildMenu.cs:42)

    (Filename: Assets/URSE/Editor/BuildMenu.cs Line: 338)

    Android PostProcess task "Processing resources" took 33.2232 ms
    Android PostProcess task "Preparing APK resources" took 46.535 ms
    Android PostProcess task "Process plugins" took 442.0586 ms
    Android PostProcess task "Processing Android libraries" took 10.2794 ms
    Android PostProcess task "Creating Android manifest" took 2939.9228 ms
    Android PostProcess task "Compiling resources" took 16.7858 ms
    Android PostProcess task "IL2CPP" took 0.7606 ms
    Android PostProcess task "ZipIl2cppSymbols" took 0.6118 ms
    Android PostProcess task "Preparing streaming assets" took 118.6001 ms
    Android PostProcess task "fastzip" took 0.2408 ms
    Android PostProcess task "AAPT: Compiling all assets into one archive" took 0.4608 ms
     
  3. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    Please submit a bug report and attach your project to it - sounds like a bug to me.
     
  4. dm_bond

    dm_bond

    Joined:
    Sep 19, 2011
    Posts:
    62
    This is not related to the project or version of the Unity. Occurs as example in different projects in 5.5.4p5 and 2017.1.1p3. I'm doing a build through BuildPipeline.BuildPlayer for Android with gradle and sometimes a couple of times in a row build failed because "Could not create empty folder". But the next build without any changes ends successfully. On other machines the build this projects works without errors. I tried to clear the folder Temp\gradleOut before build, update Java, it does not help. I'm on Windows 10, other machines on Windows 7.
     
  5. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    Your projects may have similar plugins - this is why I'm asking for a report. I'm pretty sure it should work with an empty project.
     
  6. dm_bond

    dm_bond

    Joined:
    Sep 19, 2011
    Posts:
    62
    I made an empty project, copied plug-ins into it and made 50 builds in the loop. There is no error. Continue to investigate.
     
    Yury-Habets likes this.
  7. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    Maybe you have more details in the editor.log - not in the one you attached before. Like, stdout/stderr of the utilities.
    Also try looking into the actual directories - why couldn't it create the new one?
     
  8. dm_bond

    dm_bond

    Joined:
    Sep 19, 2011
    Posts:
    62


     

    Attached Files:

    Last edited: Oct 6, 2017
  9. JohnTube

    JohnTube

    Joined:
    Sep 29, 2014
    Posts:
    66

    Attached Files:

  10. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    Random guess: anti-virus software?
    The logs look clean and make sense. The error is raised by gradle internals.

    Some of the stackoverflow threads also mention "run as administrator" done or not done when needed.
     
  11. alan_motionlab

    alan_motionlab

    Joined:
    Nov 27, 2014
    Posts:
    99
    I get this issue randomly as well when building with Gradle in 2017.2p1

    Doesn't happen all the time, but enough to be annoying. Usually another rebuild will fix it. Its usually on different plugins that it fails on. I've had it on UTNotifications, UnityPurchasing, Heyzap... doesn't seem to be specific plugins.
     
  12. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    Sounds like it's worth submitting a bug to Google. However invoking gradle with --stacktrace will be most helpful.
    Like - create a script which runs gradle build on the project in Temp/gradleOut, add --stacktrace, run in cycle until it reproduces, grab the stack trace and report it to Google: https://issuetracker.google.com/issues
     
  13. aadipatil

    aadipatil

    Joined:
    Apr 10, 2018
    Posts:
    1
    This bug got fixed when I cleared the disk. My disk was almost full(enough space for the build though) but still was throwing the error. I deleted the unnecessary files and it worked!
     
  14. Jindrich-Regal

    Jindrich-Regal

    Joined:
    Nov 22, 2013
    Posts:
    6
    How much disk space you have to clear? I have about 20GB free space (entire project has about 1GB max, final game is about 70MB) and still get these errors sometimes and have to manually delete gradle build folder inside Temp and rebuild.
     
  15. aemobile_zq

    aemobile_zq

    Joined:
    Mar 29, 2016
    Posts:
    6
    i had the same error in unity 5.6.5f1.But the second export was successful.