Создаю APK игры и выбивает ошибку ClassNotFoundException: sun.misc.BASE64Encoder

Всем привет, у меня проблема при создании APK игры в Unity.
Когда создаю APK игры в самом конце вылазит вот эта ошибка:

CommandInvokationFailure: Failed to build apk.
C:/Program Files/Java/jdk-14.0.1\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/Neo/AppData/Local/Android/Sdk\tools" -Dfile.encoding=UTF8 -jar "E:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -

stderr[
Exception in thread "main" java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at SDKMain.main(SDKMain.java:130)
Caused by: java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder
	at com.android.sdklib.internal.build.SignedJarBuilder.<init>(SignedJarBuilder.java:177)
	at com.android.sdklib.build.ApkBuilder.init(ApkBuilder.java:446)
	at com.android.sdklib.build.ApkBuilder.<init>(ApkBuilder.java:422)
	at com.android.sdklib.build.ApkBuilder.<init>(ApkBuilder.java:362)
	at UnityApkBuilder.<init>(UnityApkBuilder.java:214)
	at UnityApkBuilder.main(UnityApkBuilder.java:34)
	... 5 more
Caused by: java.lang.ClassNotFoundException: sun.misc.BASE64Encoder
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 11 more
]
stdout[

]
exit code: 1
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.HostView:OnGUI()

Может быть кто-то знает в чём проблема?

Гугл говорит, что эти классы убрали в новых версиях Джавы. https://stackoverflow.com/questions/29692146/java-lang-noclassdeffounderror-sun-misc-base64encoder

Так что видимо надо использовать Java (JDK) 8.
https://forum.unity.com/threads/yet-another-problem-with-build-android-apk.532448/

You are using JDK 10 which i don’t think is supported with Unity at the moment.

Установщик Юнити вроде ставит поддерживаемую версию JDK. https://docs.unity3d.com/2020.1/Documentation/Manual/android-sdksetup.html

1 лайк

Братан спасибо тебе. Я на седьмом небе от счастья. Скачал JDK 8 и сразу все ошибки пропали!