Unity 2020.3.16f1にしたらAndroidのビルドでdxが見つからないとエラー

AndroidでBuild And Runできなくなった。しかもBuilding Gradle projectという最終段階でBuild failureが出るからめちゃ困る。

Build failure
Gradle build failed. See the Console for details.

CommandInvokationFailure: Gradle build failed.
/Applications/Unity/2020.3.16f1/PlaybackEngines/AndroidPlayer/OpenJDK/bin/java -classpath “/Applications/Unity/2020.3.16f1/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-6.1.1.jar” org.gradle.launcher.GradleMain “-Dorg.gradle.jvmargs=-Xmx4096m” “assembleDebug”


長々と下の方に

Build-tool 31.0.0 is missing DX at /Applications/Unity/2020.3.16f1/PlaybackEngines/AndroidPlayer/SDK/build-tools/31.0.0/dx

などと書いてある。

【備忘録】Build-tool 31.0.0 is missing DXの対処方法(Cordova)

(どうやら、dx.batが31.0.0でなくなったらしい。)

なくなったって・・・。

Unity 3D アプリケーションの Android 向けビルドをカスタマイズしたい

Unity 3D を使って直接 APK を生成する場合、コンパイル SDK バージョンと build-tools バージョンを指定することができず、ビルドするコンピューターにインストールされている最新版が使用されます。

インストールされている最新のものが使われるらしいので、Android StudioのSDK Managerで、
Android SDK Locationが
/Applications/Unity/2020.3.16f1/PlaybackEngines/AndroidPlayer/SDK
になっていて、
SDK ToolsのShow Package Detailsを見て
Android SDK Build-Tools 31の
31.0.0のチェックを外して30.0.2だけにした。

今度は、31.0.0自体ないぞとエラーがでた。

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ‘:launcher:compileDebugJavaWithJavac’.
> Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

しかも、その直前で無いからインストールしといたよとか出てる。

Checking the license for package Android SDK Build-Tools 31 in /Applications/Unity/2020.3.16f1/PlaybackEngines/AndroidPlayer/SDK/licenses
License for package Android SDK Build-Tools 31 accepted.
Preparing “Install Android SDK Build-Tools 31 (revision: 31.0.0)”.
“Install Android SDK Build-Tools 31 (revision: 31.0.0)” ready.
Installing Android SDK Build-Tools 31 in /Applications/Unity/2020.3.16f1/PlaybackEngines/AndroidPlayer/SDK/build-tools/31.0.0
“Install Android SDK Build-Tools 31 (revision: 31.0.0)” complete.
“Install Android SDK Build-Tools 31 (revision: 31.0.0)” finished.

余計なことを・・・。

Build Gradleツールみたいので、Unity上でbuild-toolsのバージョンを30.0.2でやれよみたいに指定する仕組みがあればいいのに。
Unity – Preferences – External Toolsには
JDK, SDK, NDK, Gradleは指定できるけどbuild-toolsはない。どこかに引っ張られているみたい。
でもRecommendのやつを外したり、Unityのバージョン戻したりしたくない。そもそもUnityはLong Time Support(LTS)なのに、Short Time Updateし過ぎ。

仕方がないので、
30.0.2に入っている
build-tools/30.0.2/dx
build-tools/30.0.2/lib/dx.jar

build-tools/31.0.0
build-tools/31.0.0/lib/
へコピーしてあげたら、コンパイルが通った。

そもそもdxってなんでしょうか。わかりませんが。

Unity 2020.3.16f1にしたらAndroidのビルドでdxが見つからないとエラー
トップへ戻る