Skip to main content
April 27, 2017

GearVR export fails with Online Subsystem Oculus plugin enabled

I finally got around to testing some of the Online Subsystem features offered by the Oculus platform but I'm able to get an export to build with that plugin enabled using 4.15 from the Oculus github branch: https://github.com/Oculus-VR/UnrealEngine

Here's the error in the log:

UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: [1/3] clang++.exe Module.OnlineSubsystemOculus.cpp [armv7-es2]
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: In file included from U:/UnrealEngine/GitHub/UnrealEngine-4.15-oculus/Engine/Plugins/Online/OnlineSubsystemOculus/Intermediate/Build/Android/GC/Development/OnlineSubsystemOculus/Module.OnlineSubsystemOculus.cpp:14:
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(343,9) : warning: declaration shadows a local variable [-Wshadow]
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: auto Session = GetNamedSession(SessionName);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(315,7) : note: previous declaration is here
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: auto Session = GetNamedSession(SessionName);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(389,45) : error: use of undeclared identifier '_strdup'; did you mean 'strdup'?
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: DataStore.Add(ovrKeyValuePair_makeString(_strdup(Key.c_str()), _strdup(Value.c_str())));
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^~~~~~~
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: strdup
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:/NVPACK/android-ndk-r12b/platforms/android-19/arch-arm/usr/include\string.h(59,15) : note: 'strdup' declared here
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: extern char* strdup(const char *);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: In file included from U:/UnrealEngine/GitHub/UnrealEngine-4.15-oculus/Engine/Plugins/Online/OnlineSubsystemOculus/Intermediate/Build/Android/GC/Development/OnlineSubsystemOculus/Module.OnlineSubsystemOculus.cpp:14:
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(389,67) : error: use of undeclared identifier '_strdup'; did you mean 'strdup'?
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: DataStore.Add(ovrKeyValuePair_makeString(_strdup(Key.c_str()), _strdup(Value.c_str())));
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^~~~~~~
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: strdup
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:/NVPACK/android-ndk-r12b/platforms/android-19/arch-arm/usr/include\string.h(59,15) : note: 'strdup' declared here
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: extern char* strdup(const char *);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: In file included from U:/UnrealEngine/GitHub/UnrealEngine-4.15-oculus/Engine/Plugins/Online/OnlineSubsystemOculus/Intermediate/Build/Android/GC/Development/OnlineSubsystemOculus/Module.OnlineSubsystemOculus.cpp:14:
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(406,45) : error: use of undeclared identifier '_strdup'; did you mean 'strdup'?
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: DataStore.Add(ovrKeyValuePair_makeString(_strdup(Key.c_str()), ""));
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^~~~~~~
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: strdup
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:/NVPACK/android-ndk-r12b/platforms/android-19/arch-arm/usr/include\string.h(59,15) : note: 'strdup' declared here
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: extern char* strdup(const char *);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: In file included from U:/UnrealEngine/GitHub/UnrealEngine-4.15-oculus/Engine/Plugins/Online/OnlineSubsystemOculus/Intermediate/Build/Android/GC/Development/OnlineSubsystemOculus/Module.OnlineSubsystemOculus.cpp:14:
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(433,9) : warning: declaration shadows a local variable [-Wshadow]
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: auto Session = GetNamedSession(SessionName);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(367,7) : note: previous declaration is here
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: auto Session = GetNamedSession(SessionName);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Source\Private\OnlineSessionInterfaceOculus.cpp(1314,30) : error: no member named 'stoi' in namespace 'std'; did you mean 'atoi'?
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: int32 IntDataStoreValue = std::stoi(DataStoreValue);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^~~~~~~~~
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: atoi
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: U:/NVPACK/android-ndk-r12b/platforms/android-19/arch-arm/usr/include\stdlib.h(79,12) : note: 'atoi' declared here
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: extern int atoi(const char *);
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ^
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: 2 warnings and 4 errors generated.
UATHelper: Packaging (Android (ETC2)): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: U:\UnrealEngine\GitHub\UnrealEngine-4.15-oculus\Engine\Plugins\Online\OnlineSubsystemOculus\Binaries\Android\GC-OnlineSubsystemOculus-armv7-es2.a

Any ideas what I'm doing wrong? Is this plugin now supported for gearvr?

    This topic has been closed for replies.

    4 replies

    May 2, 2017
    Any idea here @imperativity ?
    Participant
    May 10, 2017
    Hi,

    We noticed that the standard c++ string library broke android, and have since pushed a fix.  If you pull from github you should be able to export to GearVR again
    Inspiring
    May 11, 2017

    brian_jew said:

    Hi,

    We noticed that the standard c++ string library broke android, and have since pushed a fix.  If you pull from github you should be able to export to GearVR again


    I did that last night (got 4.15.2 unified release from Oculus github). Apparently it's totally incompatible with projects made in launcher version of UE4. Also incompatible for FMOD for 4.15.
    May 12, 2017

    brian_jew said:

    Hi,

    We noticed that the standard c++ string library broke android, and have since pushed a fix.  If you pull from github you should be able to export to GearVR again

    It works now thanks! :)