Lofelt / NiceVibrations

🎮 🚀 Nice Vibrations and Lofelt Studio SDK source code repository
MIT License
131 stars 17 forks source link

Crash report from [liblofelt_sdk.so] lofeltHapticsLoadDirect #28

Open avolkangursel opened 1 year ago

avolkangursel commented 1 year ago

Bug report

Checklist

Environment

Our mobile game uses the Nice Vibration package from the Feel package. The crash is coming from the Android app.

Steps to Reproduce

We can't reproduce the issue on our own test devices, but many crash reports are coming from our live game. Crash reports are coming from the Android app and we can't figure out exactly what the problem is as the error comes from inside the "liblofelt_sdk.so" library.

Expected behavior

When we call the method "HapticPatterns.PlayPreset(HapticPatterns.PresetType.LightImpact);" in the Android app, we should be able to invoke the LightImpact vibration without any issues.

Observed behavior

Crash reports come from certain devices when the "HapticPatterns.PlayPreset(HapticPatterns.PresetType.LightImpact);" method is called in the Android app.

Code Samples & Details

We are using it in a simple way within the game. When a button is pressed, we call this method. "HapticPatterns.PlayPreset(HapticPatterns.PresetType.LightImpact);"

When we look at the crash reports from the Google Play dashboard, we see many reports like this. ` pid: 0, tid: 31076 >>> com.link.match <<<

backtrace:

00 pc 0x00756c61765f7465

01 pc 0x000000000001ca5c /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/liblofelt_sdk.so

02 pc 0x0000000000018954 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/liblofelt_sdk.so (lofeltHapticsLoadDirect+332)

03 pc 0x0000000001fd00f0 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (LofeltHaptics_lofeltHapticsLoadDirect_m212DB3189B44BE54F822058250FAE6FFBB72500B)

04 pc 0x0000000001fcc4fc /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (HapticController_Load_mE6AA251161ED4A27476BC30C51AD716D49B15573)

05 pc 0x0000000001fcccd0 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (HapticPatterns_PlayPreset_m4BBC460337643C4051BA3AC077AAD1E2BB4B9B90)

06 pc 0x00000000009bdd24 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (Action_1_Invoke_mF2422B2DD29F74CE66F791C3F68E288EC7C3DB9E_Multicast(Action_1_t6F9EB113EB3F16226AEF811A2744F4111C116C87, Il2CppObject, MethodInfo const*))

07 pc 0x00000000028ef654 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (UnityEvent_Invoke_mFBF80D59B03C30C5FE6A06F897D954ACADE061D2)

08 pc 0x0000000001e23b50 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (ExecuteEvents_Execute_TisRuntimeObject_mDC4455B743BE4A6BA46DD741D0E0AB150FF1209A_gshared)

09 pc 0x0000000001afc524 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (StandaloneInputModule_ProcessTouchPress_mD72A0807626DA04E47313F9553249DD4A32625E3)

10 pc 0x0000000001afbba4 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (StandaloneInputModule_ProcessTouchEvents_m042FC6B13874B1EE6699BBB51F02FE3A435A25F0)

11 pc 0x0000000001afb904 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (StandaloneInputModule_Process_mBD949CC45BBCAB5A0FAF5E24F3BB4C3B22FF3E81)

12 pc 0x0000000000bbb48c /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (il2cpp::vm::Runtime::InvokeWithThrow(MethodInfo const, void, void**))

13 pc 0x0000000000bbb300 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (il2cpp::vm::Runtime::Invoke(MethodInfo const, void, void, Il2CppException))

14 pc 0x0000000000318bc8 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool))

15 pc 0x0000000000326964 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool))

16 pc 0x000000000033498c /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (MonoBehaviour::CallUpdateMethod(int))

17 pc 0x00000000001a11bc /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (void BaseBehaviourManager::CommonUpdate())

18 pc 0x000000000024cb74 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (ExecutePlayerLoop(NativePlayerLoopSystem*))

19 pc 0x000000000024cbb4 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (ExecutePlayerLoop(NativePlayerLoopSystem*))

20 pc 0x000000000024cdec /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (PlayerLoop())

21 pc 0x00000000003a22e8 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (UnityPlayerLoop())

22 pc 0x00000000003b86ac /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libunity.so (nativeRender(_JNIEnv, _jobject))

23 pc 0x00000000000d89cc /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/oat/arm64/base.odex (art_jni_trampoline+124)

24 pc 0x0000000000214a7c /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/oat/arm64/base.odex (com.unity3d.player.UnityPlayer$e$1.handleMessage+972)

25 pc 0x0000000000654dd8 /system/framework/arm64/boot-framework.oat (android.os.Handler.dispatchMessage+136)

26 pc 0x0000000000658450 /system/framework/arm64/boot-framework.oat (android.os.Looper.loop+1696)

27 pc 0x0000000000215688 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/oat/arm64/base.odex (com.unity3d.player.UnityPlayer$e.run+216)

28 pc 0x0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)

29 pc 0x00000000001a97e8 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread, unsigned int, unsigned int, art::JValue, char const)+200)

30 pc 0x000000000055e61c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject, art::ArtMethod, jvalue const)+460)

31 pc 0x00000000005af6ac /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308)

32 pc 0x00000000000ec8b8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)

33 pc 0x000000000008c0d0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)`

We couldn't understand the reason behind this. Due to these errors, our Android application appears to have bad behavior. We would appreciate your assistance in resolving this issue.

BenTailors commented 1 year ago

Hi, thanks for bringing this up! We would suspect the issue to be only reproducible on some Android models or specific models with a specific Android version. At this stage, we are unable to isolate this further to a list of affected devices as this package is not actively developed by us anymore, which also means we do not collect any usage data ourselves that would allow us to look into the root cause of the crashes you see. If you (and maybe other NiceVibrations users) would be able to narrow down the affected makes & model, we could assist in a fix to make this fail more gracefully.

Artemiy42 commented 7 months ago

Hi, we are experiencing the same problem on some projects, I have looked through all the devices that were defected and here is the list of them. I could attach logs, but they are the same as attached above.

samsung dm3q (Galaxy S23 Ultra) Android 14 (SDK 34)
samsung dm1q (Galaxy S23) Android 14 (SDK 34)
samsung dm2q (Galaxy S23+) Android 14 (SDK 34)
OnePlus OP594DL1 (OnePlus 11 5G) Android 14 (SDK 34)
realme RED8ACL1 (realme GT 2 Pro ) Android 14 (SDK 34)
samsung e3q (Galaxy S24 Ultra) Android 14 (SDK 34)
samsung dm3q (Galaxy S23 Ultra) Android 14 (SDK 34)
samsung dm1q (Galaxy S23) Android 14 (SDK 34)
samsung dm3q (Galaxy S23 Ultra) Android 14 (SDK 34)
samsung dm3q (Galaxy S23 Ultra) Android 14 (SDK 34)
samsung e3q (Galaxy S24 Ultra) Android 14 (SDK 34)
samsung dm1q (Galaxy S23) Android 14 (SDK 34)
samsung e3q (Galaxy S24 Ultra) Android 14 (SDK 34)

So far I think the problem is Android 14, as I don't see any device with another version of android.

wildrabbit commented 5 months ago

Hi, we had a similar issue at work in our project (it didn't crash, but threw a few related exceptions) using Feel v3.8. TL;DR: Try to update the plugin.

In case it helps anyone else with a similar issue that drops by this thread, the problem in our case had to do with the Android version, but also the locale (and perhaps the device itself?).

We ran our game on the following configurations:

The problem was that the Preset struct generated a malformed json string because of some float to string conversions that seemed to be culture-dependent on the affected devices (or well, maybe that's the execution path for the affected devices in particular).

We updated the Feel plugin to the latest version (as of today, v4.0.1) and it seems to work consistently now 😄