Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash report from [liblofelt_sdk.so] lofeltHapticsLoadDirect #28

Open
avolkangursel opened this issue Jun 1, 2023 · 3 comments
Open

Comments

@avolkangursel
Copy link

Bug report

Checklist

  • [+] I'm using the latest release
  • [+] I've searched for existing issue

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
#1 pc 0x000000000001ca5c /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/liblofelt_sdk.so
#2 pc 0x0000000000018954 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/liblofelt_sdk.so (lofeltHapticsLoadDirect+332)
#3 pc 0x0000000001fd00f0 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (LofeltHaptics_lofeltHapticsLoadDirect_m212DB3189B44BE54F822058250FAE6FFBB72500B)
#4 pc 0x0000000001fcc4fc /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (HapticController_Load_mE6AA251161ED4A27476BC30C51AD716D49B15573)
#5 pc 0x0000000001fcccd0 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (HapticPatterns_PlayPreset_m4BBC460337643C4051BA3AC077AAD1E2BB4B9B90)
#6 pc 0x00000000009bdd24 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (Action_1_Invoke_mF2422B2DD29F74CE66F791C3F68E288EC7C3DB9E_Multicast(Action_1_t6F9EB113EB3F16226AEF811A2744F4111C116C87*, Il2CppObject*, MethodInfo const*))
#7 pc 0x00000000028ef654 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (UnityEvent_Invoke_mFBF80D59B03C30C5FE6A06F897D954ACADE061D2)
#8 pc 0x0000000001e23b50 /data/app/~~SSMUplsNgTKXoJtKmD1Yew==/com.link.match-63K3Zp10EDlIDteJNz6G9g==/lib/arm64/libil2cpp.so (ExecuteEvents_Execute_TisRuntimeObject_mDC4455B743BE4A6BA46DD741D0E0AB150FF1209A_gshared)
#9 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::InvokeVirtualOrInterfaceWithJValuesart::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
Copy link

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
Copy link

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
Copy link

wildrabbit commented May 14, 2024

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:

  • Samsung Galaxy S21 FE running Android 14:
    • Device language set to Spanish or French: Exception 🛑
    • Device language changed to English: Working ✅
  • Samsung Galaxy Tab S7+ running Android 13:
    • Device language set to Spanish: Working✅
    • ...we didn't try other languages here, sorry.

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 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants