DLL not found

Using the Release Candidate of Pulse Unity Asset v3.0 I have another problem when deploying the application to Android.

DllNotFoundException: PulseC
at (wrapper managed-to-native) Pulse.PulseEngine.Allocate()
at Pulse.PulseEngine…ctor () [0x00032] in <73f77fe013e54870810128f91c96bf6f>:0
at PulseEngineDriver.Start () [0x0006a] in \Assets\PulsePhysiologyEngine\Scripts\PulseEngineDriver.cs:97

Do you know any way to solve this?

Which PulseC library extension do you use when on Android?
The .dll or .so ?
Do you have to build it? or do you use one of the provided libraries in the Pulse asset?

Well, as far as I know, you use the .so on Android. However, I am using the provided libraries in the Pulse Asset. Am I doing something wrong?

I do not think there is a PulseC.so in the rc assets I provided
So I believe that is the issue

I pushed up an rc3 asset file here

That has a linux *.so file in it, let me know how that works

Hi! This is the error I’m getting:

Still the same I was having before. I’m trying to solve it but if you have any ideas please let me know

To be clear (I have not run this on a Android platform)
Does the current version of the Pulse Asset Run on your Android platform?

It doesn’t work but because of a different error. If I try to run the previous version of the Pulse Asset, it finds the Dll and builds perfectly but shows that no data has been provided given that on Android, you cannot use the StreamingAssets folder.

This was the reason why I asked for the new version as the StreamingAssets folder is not needed on v3.0

Hi, Here’s the complete error just in case

Have you tried to view the PulseC.so object in the Unity Editor and tweeked the Target OS options?
Maybe you need to change that to Any OS
There also may be other options on the adjacent tab (with the underlined down arrow)

Yes! I changed that and also the scripting backend but I only got another error

So now Unity knows about it, and is trying to load it, and it seems incompatible with the library loader on the target platform…

The provided PulseC.so was built on an Ubuntu 18 system (It was an Ubuntu 16 system before)

So I would say that I probably need to have a PulseC.so that is built on a ARM64 Linux version? I bet you were loading the PulseC.so from the magic leap build (which is a Linux ARM64 flavor that I cross compiled)

I will see if I can get a PulseC.so for magic leap for you to try out

Thank you very much for your help with this. I will test the PulseC.so and will let you know if it works on Android. I will also try to find the cause of the error

Hi Degly

Can you download this PulseC.so and see if it works

It built from this docker container, so I believe it should work for any Android device

Keep me posted

Hi Abray,

I will try it right away. Thank you

So I tried it and sadly it did not work.

I tried with multiple Scripting Backends but only IL2CPP finds the Dll. If I change it, it doesn’t even find the file

What is the hardware you are using again?

It’s just a regular Android device. I’ve tried it in multiple and it just doesn’t work on Android

I find it interesting because on the previous version of the Pulse Asset, it worked (found the dll) with no problem

I can try https://hub.docker.com/r/dockcross/android-arm

Is regular android 64bit?

I am using ARMv7 to build it