Unity导出Android时提示找不到合适JDK(已装JDK10)如何解决?
Hey there, let's work through this JDK issue—this is a pretty common hiccup when setting up Unity for Android, so we'll get you sorted out. Here are the most likely fixes, ordered by how often they resolve the problem:
1. Manually point Unity to your JDK 10 installation
Unity doesn't always auto-detect newer JDK versions correctly. Let's tell it exactly where to look:
- Open Unity, go to
Edit > Preferences(Windows) orUnity > Settings(Mac). - Navigate to the External Tools tab.
- Under the JDK section, click the browse button (the folder icon) and select the root directory of your JDK 10 installation.
- For Windows, this is usually
C:\Program Files\Java\jdk-10.x.x(replacex.xwith your exact version number). - For Mac, it's typically
/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home.
- For Windows, this is usually
- Click Apply and restart Unity to see if the error goes away.
2. Verify your JAVA_HOME environment variable
Unity relies on the JAVA_HOME variable to locate the JDK. If it's missing or pointing to the wrong place, Unity will throw that error. Let's check and fix it:
On Windows:
- Press Win + R, type
sysdm.cpland hit Enter. - Go to the Advanced tab, then click Environment Variables.
- Under System Variables, check if there's a
JAVA_HOMEentry. If not, click New and set:- Variable name:
JAVA_HOME - Variable value: The root path of your JDK 10 installation (e.g.,
C:\Program Files\Java\jdk-10.0.2)
- Variable name:
- Also, make sure
%JAVA_HOME%\binis added to the Path variable (under System Variables). If not, edit Path and add that entry. - Open a new Command Prompt and run
java -versionandjavac -version—both should show JDK 10. If they do, restart Unity.
On Mac/Linux:
- Open Terminal and run
echo $JAVA_HOME—if it doesn't show your JDK 10 path, we need to set it. - For a temporary fix (until you close Terminal), run:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH - For a permanent fix, edit your shell config file (
.bash_profilefor Bash,.zshrcfor Zsh) and add the lines above. Save the file, then runsource ~/.bash_profile(or your config file) to apply changes. - Run
java -versionandjavac -versionto confirm, then restart Unity.
3. Try JDK 8 instead (often the most reliable fix)
While Unity says it supports JDK 8 or higher, some older Unity versions have compatibility issues with JDK 9+. JDK 8 is an LTS (Long-Term Support) version and is widely recommended for Android development with Unity. Here's what to do:
- Uninstall JDK 10 (optional, but avoids confusion) and download JDK 8 from Oracle's archive (or use OpenJDK 8).
- Repeat steps 1 and 2 to point Unity to JDK 8 and set
JAVA_HOMEaccordingly. - This almost always resolves the issue, especially if you're using a Unity version older than 2018.3 (which was the first version to add official support for JDK 9+).
4. Check your Unity version compatibility
If you're dead-set on using JDK 10, make sure your Unity version supports it:
- Unity 2018.3 and newer officially support JDK 9 and 10.
- If you're on an older version (like 2018.2 or earlier), Unity won't recognize JDK 10 at all. Your options here are to either upgrade Unity to a newer version or downgrade to JDK 8.
5. Rule out permission issues (Windows-specific)
Sometimes Unity can't access the JDK directory if it's running without sufficient permissions. Try:
- Right-click the Unity shortcut and select Run as administrator.
- If that works, you can set Unity to always run as admin by right-clicking the shortcut > Properties > Compatibility > Check "Run this program as an administrator".
- Alternatively, check the permissions on your JDK installation folder: Right-click the folder > Properties > Security > Ensure your user account has Read & Execute permissions.
Give these steps a try in order—most people fix the issue with step 1 or 3. Let me know if you run into any snags!
内容的提问来源于stack exchange,提问作者Pikamander2

