PlayEveryWare / eos_plugin_for_unity

Repository for PlayEveryWare's EOS Plugin for Unity, bringing the functionality of Epic Online Services to the Unity Game Engine.
https://eospluginforunity.playeveryware.com
281 stars 54 forks source link

Missing EOSSDK for Android? #756

Closed WeLoveJesusChrist closed 3 months ago

WeLoveJesusChrist commented 3 months ago

I just built my project for android and it built successfully! When I start the game, I get the error message

Exception: DllNotFoundException: Unable to load DLL 'EOSSDK'. Tried the load the following dynamic libraries: Unable to load dynamic library 'EOSSDK' because of 'Failed to open the requested dynamic library (0x06000000) dlerror() = dlopen failed: library "EOSSDK" not found

I searched the Plugins/ directory and found EOSSDK for all but Android Is this intentional or are we simply missing it?

Please note: I am only using the Plugins directory of this project since I am using another networking solution with a transport that uses this plugin

WeLoveJesusChrist commented 3 months ago

I'm not sure if I'm heading down the right path, but I am attempting to just debug as far as possible

arthur740212 commented 3 months ago

Here is some information about how Android builds in our sample project.

When building for Android, the build processor will copy either the dynamic or the static eos-sdk.aar (located at PlatformSpecificAssets~/Android) into the Plugins folder. The build processor also writes the needed configurations into eos_dependencies.androidlib folder, including eos_login_protocol_scheme. Therefore, solely copying the plugin folder isn't likely to work for an Android build. We will recommend adding the upm into the project through Package Manager, it will include the required post/pre build steps for Android.

WispyMouse commented 3 months ago

Ahoy @KatoneVi ! Let's try and get to the bottom of this.

What version of Unity are you using, and what platform are you building from? (Windows?)

The EOSSDK file is generated when you go to build your project, and it isn't necessary to use the Android EOSSDK download. You should remove this downloaded SDK from the project, or you're going to run in to some weird issues! This is pulled from the plugin's etc\PlatformSpecificAssets\EOS\Android folder. When you say you're only using the Plugins folder, are you still including the etc folder in to your project? (not inside the /Assets folder! Should be at the root of the plugin)

Have you followed any of the Linking EOS Library on Android Settings instructions? I think this might be relevant because,

If the game is using other libraries that also links to the C++ Library, the EOS Library should use the version that matches the linking type of the others, or else duplicate symbols would occur.

I'm guessing you'll want to load it Dynamically, based on that first message. Do you know if any of the other android plugins you're using are static or dynamically included?

I'd also like to ask, how did you pull down this EOS Plugin for Unity? There's a possible problem with our git-lfs implementation where downloading the repository as a .zip might just git you the git lfs version of a file. Please check the contents of the EOSSDK generated file, and see that it isn't just a blob about git lfs.

WeLoveJesusChrist commented 3 months ago

Great info guys! With your guidance it was resolved! Adding the etc directory at the root dir of my project was what solved it,

Arthur, I just tried the UPM one.. and my Mac failed again wtih the issue we had last time, remember? https://github.com/PlayEveryWare/eos_plugin_for_unity/issues/739

Because of that, I'll stick with the Plugins and Etc dir in mean time...

Lastly, I really like your team. You guys know your stuff, provide full detailed questions that really helps solve the issue quickly. Again, thank you very much, PlayEveryware!