Unable to locate Android NDK when building from command line
Hello,
I'm building Android from Unity on my CI machine and can't solve the issue with missing NDK. There is NDK r16 and Unity 2019.1.1 installed, but when build is run in the batchmode I get - Unable to locate Android NDK.
Everything worked fine until I switched to support 64-bit architectures (Google requirement since 1 Aug 2019).
Here's my command:
/Applications/Unity/Unity.app/Contents/MacOS/Unity \
-nographics \
-quit \
-batchmode \
-executeMethod UnityCommandLine.Build \
-androidSdkPath "$ANDROID_HOME" \
-androidNdkPath "$ANDROID_NDK_HOME" \
-buildOutput $DEPLOY_DIR/app.apk \
-buildPlatform android \
-androidKeystorePath $SOURCE_DIR/App_Keystore \
-androidKeystorePassword $ANDROID_KEYSTORE_PASSWORD \
-androidKeystoreAlias $ANDROID_KEYSTORE_ALIAS \
-androidKeystoreAliasPassword $ANDROID_KEYSTORE_ALIAS_PASSWORD \
-logFile /dev/stdout \
-productName "$APPLICATION_NAME"
Have any idea what can I do with this? I've tried different NDK versions/locations, setting NDK path directly (as you can see in my command) but none of these work.
Answer by pawelEpicode · Jul 23, 2019 at 02:25 PM
Hello,
well... I've found the answer...quite unexpected....
It turns out that you have to use two different keys in Editor to make it work:
EditorPrefs.SetString("AndroidNdkRootR16b", "Your__Path");
EditorPrefs.SetString("AndroidNdkRoot", "Your__Path");
I've found part of the anwser here: https://forum.unity.com/threads/android-ndk-path-editorprefs-key-changed.639103/, but it's only half right. Both were needed in my case.
Best regards,
Paul
Your answer
Follow this Question
Related Questions
> 1 exception was raised by workers: UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) 0 Answers
UNABLE TO MERGE ANDROID MANIFEST!! 1 Answer
APK filename change on build & run, Copy error (PostProcessBuildAttribute) 0 Answers
Mesh not being rendered in build 0 Answers
Failed to re-package resources 1 Answer