소소한 개발 공부

FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher.aab does not exist 본문

개발/Unity

FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher.aab does not exist

이내내 2022. 3. 12. 21:11

유니티 2020.3.11f1 버전을 aab 파일로 빌드하려고 보니 제목과 같은 에러가 발생했다.

gradle 버전이 맞지 않음으로써 생기는 오류인데 아래의 방법을 사용해 해결했다.

 

우선 최종적으로 사용하는 한 일은

1. 유니티 버전 2020.3.11f1

2. gradle 버전 6.9.2-all

3. gradle Template 4.0.1

4. launcherTemplate.gradle 코드 추가

 

1. 사용 중인 gradle 버전 변경

유니티 버전마다 호환되는 버전이 다르다고 한다.

https://docs.unity3d.com/Manual/android-gradle-overview.html

 

Unity - Manual: Gradle for Android

Customizing an Android Splash Screen Gradle for Android Gradle is an Android build system that automates a number of build processes and prevents many common build errors. In Unity, Gradle reduces the method reference count in DEX (Dalvik Executable format

docs.unity3d.com

유니티를 설치할 때 같이 설치된 gradle 버전은 5.6.4이지만 이대로는 왜인지 에러가 발생했다. gradle 저장소에서 더 상위 버전 zip 파일을 다운받아 Preferences... -> ExternalTools -> gradle 부분의 파일 경로를 바꿔줬다.

6.9.2-all.zip 파일을 다운 받아 압축을 풀고 파일 경로를 지정해줬다.

 

 

https://services.gradle.org/distributions/

 

Gradle Distributions

 

services.gradle.org

gradle 파일 다운 및 경로 지정 영상 https://www.youtube.com/watch?v=RNDYJPMEo98 

참고 블로그 https://drehzr.tistory.com/1234

 

문제해결)Unity)Unity aab build FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher-release.

Unity aab build FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher-release.aab does not exist 더보기 FileNotFoundException: Temp\gradleOut\launcher\build\ou..

drehzr.tistory.com

 

 

2. gradle 템플릿 버전 변경

baseProjectTemplate.gradle, mainTemplate.gradle, launcherTemplate.gradle 파일에 

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

위 주석이 있다면 지우고,

파일의 맨 위에 아래 코드를 추가한다. (아마 baseProjectTemplate.gradle에는 dependencies { classpath 'com.android.tools.build:gradle:4.0.1'} 이 있을 것이기 때문에 gradle 버전만 바꿔준다. 나는 4.0.1을 사용한다.

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        // Must be Android Gradle Plugin 3.6.0 or later. For a list of
        // compatible Gradle versions refer to:
        // https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:4.0.1'
    }
}

allprojects {
   repositories {
      google()
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

만약 위의 baseProjectTemplate.gradle, mainTemplate.gradle, launcherTemplate.gradle 파일이 없다면 

Project Settings -> Player -> Publishing Settings 의 아래 항목을 체크하면 생성된다.

 

https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=78425 

 

페북 SDK 붙이다 Gradle build failed 생긴거 해결 - 인디 게임 개발 갤러리

2019.4 버전이 익숙해서 예전부터 쓰고 있었는데이제 보니까 2019.4 버전에서 기본적으로 사용하는 gradle이 구버전이어서 sdk 붙이다가 충돌이 존나게 남개고생하면서 빌드 성공할 때까지 거쳐갔던

gall.dcinside.com

https://answers.unity.com/questions/1781610/filenotfoundexception-tempgradleoutlauncherbuildou.html

 

FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher.aab does not exist - Unity Answers

 

answers.unity.com

https://stackoverflow.com/questions/70026769/filenotfoundexception-temp-gradleout-launcher-build-outputs-bundle-release-laun

 

FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher-release.aab does not exist

now i finish my game in unity 2020 and want to make google play app so i check on build app bundle and at final it show this error : Temp\gradleOut\launcher\build\outputs\bundle\release\launcher-re...

stackoverflow.com

 

3. launcherTemplate.gradle 에 코드 추가

launcherTemplate.gradle 밑 부분에 아래의 코드를 추가했다. 

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 "launcher-release.aab"
            destinationDir file("${buildDir}/outputs/bundle/${flavor}/")
            rename "launcher-release.aab", "launcher.aab"
        }
 
        task.finalizedBy(renameTaskName)
    }
}

 

https://forum.unity.com/threads/bundle-release-launcher-aab-does-not-exist-2019-4-16f1.1025302/#post-7259179

 

...\bundle\release\launcher.aab does not exist 2019.4.16f1

FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle\release\launcher.aab does not exist When trying to update Gradle to version...

forum.unity.com

 

 

결과 : aab 파일 빌드에 성공했다...!