-
Notifications
You must be signed in to change notification settings - Fork 376
Description
Description:
After add Dexguard on our project, I start to receive some errors of NoClassDefFoundError on HuaweiApiAvailability. I search on other issues, like #1194 and #1085 but the only solution is keep everything from OneSignal on dexguard rules.
Environment
OneSignal 4.4.2 via Gradle + Dexguard
implementation ('com.onesignal:OneSignal:4.4.2')
Steps to Reproduce Issue:
None
Anything else:
Fatal Exception: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/huawei/hms/api/HuaweiApiAvailability;
at com.onesignal.OSUtils.isHMSCoreInstalledAndEnabled(OSUtils.java:289)
at com.onesignal.OSUtils.supportsHMS(OSUtils.java:317)
at com.onesignal.OSUtils.getDeviceType(OSUtils.java:349)
at com.onesignal.OSUtils.initializationChecker(OSUtils.java:112)
at com.onesignal.OneSignal.init(OneSignal.java:711)
at com.onesignal.OneSignal.setAppId(OneSignal.java:625)
at com.onesignal.OneSignal.reassignDelayedInitParams(OneSignal.java:1028)
at com.onesignal.OneSignal.onRemoteParamSet(OneSignal.java:759)
at com.onesignal.OneSignal$5.complete(OneSignal.java:969)
at com.onesignal.OneSignalRemoteParams.processJson(OneSignalRemoteParams.java:205)
at com.onesignal.OneSignalRemoteParams.access$100(OneSignalRemoteParams.java:12)
at com.onesignal.OneSignalRemoteParams$1.onSuccess(OneSignalRemoteParams.java:150)
at com.onesignal.OneSignalRestClient$5.run(OneSignalRestClient.java:269)
at java.lang.Thread.run(Thread.java:929)
Caused by java.lang.ClassNotFoundException: com.huawei.hms.api.HuaweiApiAvailability
at com.onesignal.OSUtils.isHMSCoreInstalledAndEnabled(OSUtils.java:289)
at com.onesignal.OSUtils.supportsHMS(OSUtils.java:317)
at com.onesignal.OSUtils.getDeviceType(OSUtils.java:349)
at com.onesignal.OSUtils.initializationChecker(OSUtils.java:112)
at com.onesignal.OneSignal.init(OneSignal.java:711)
at com.onesignal.OneSignal.setAppId(OneSignal.java:625)
at com.onesignal.OneSignal.reassignDelayedInitParams(OneSignal.java:1028)
at com.onesignal.OneSignal.onRemoteParamSet(OneSignal.java:759)
at com.onesignal.OneSignal$5.complete(OneSignal.java:969)
at com.onesignal.OneSignalRemoteParams.processJson(OneSignalRemoteParams.java:205)
at com.onesignal.OneSignalRemoteParams.access$100(OneSignalRemoteParams.java:12)
at com.onesignal.OneSignalRemoteParams$1.onSuccess(OneSignalRemoteParams.java:150)
at com.onesignal.OneSignalRestClient$5.run(OneSignalRestClient.java:269)
at java.lang.Thread.run(Thread.java:929)
Maybe, if add an try/catch on this method
https://github.com/OneSignal/OneSignal-Android-SDK/blob/main/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSUtils.java#L287
like this one
https://github.com/OneSignal/OneSignal-Android-SDK/blob/main/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSUtils.java#L160
or check if HuaweiApiAvailability exists inside supportsHMS(), help to solve the problem
