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

[Bug]: Application crashes on first launch on android #597

Closed
1 task done
Arikaton opened this issue Mar 17, 2023 · 6 comments
Closed
1 task done

[Bug]: Application crashes on first launch on android #597

Arikaton opened this issue Mar 17, 2023 · 6 comments

Comments

@Arikaton
Copy link

Arikaton commented Mar 17, 2023

What happened?

I created empty Unity project (2020.3.38f) and install OneSignal SDK. There is two cases:

  1. On device with android 13 it crashes at very first app launch.
  2. On android 12 device OneSignal SDK throw java.lang.NullPointerException during initialization

In the first case, you can see the same exception in the general logs of the device after an application failure

Steps to reproduce?

For my device Samsung SM-A525F/DS with Android 13
1. Install OneSignal Unity SDK v3.0.x
2. Initialize OneSignal at Start() method
3. See app crashes on first launch
4. No exception logs appears in logcat

For other device with Android 12
1. Install OneSignal Unity SDK v3.0.x
2. Initialize OneSignal at Start() method
3. Observe exceptions in logcat.

What did you expect to happen?

No any exceptions or crashes during OneSignal initialization

Unity version

2020.3.38f

OneSignal Unity SDK version

3.0.0 - 3.0.9

Platform

Android

Relevant log output

2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper Work [ 
id=8f3e87d2-441c-4b59-873b-d0744abe022e, tags={ FOCUS_LOST_WORKER_TAG, 
com.onesignal.OSFocusHandler$OnLostFocusWorker } ] failed because it threw 
an exception/error
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 
java.util.concurrent.ExecutionException: java.lang.NullPointerException: 
Attempt to invoke virtual method 'android.content.pm.PackageManager 
android.content.Context.getPackageManager()' on a null object reference
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
java.lang.Thread.run(Thread.java:1012)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper Caused by: 
java.lang.NullPointerException: Attempt to invoke virtual method 
'android.content.pm.PackageManager 
android.content.Context.getPackageManager()' on a null object reference
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OSUtils.packageInstalledAndEnabled(OSUtils.java:275)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OSUtils.isGMSInstalledAndEnabled(OSUtils.java:288)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OSUtils.supportsGooglePush(OSUtils.java:330)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OSUtils.getDeviceType(OSUtils.java:349)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OSUtils.isAndroidDeviceType(OSUtils.java:371)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.LocationController.isGooglePlayServicesAvailable(LocationController.java:337)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.LocationController.onFocusChange(LocationController.java:325)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OneSignal.onAppLostFocus(OneSignal.java:1352)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OSFocusHandler$Companion.onLostFocusDoWork(OSFocusHandler.kt:144)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
com.onesignal.OSFocusHandler$OnLostFocusWorker.doWork(OSFocusHandler.kt:123)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	at 
androidx.work.Worker$1.run(Worker.java:86)
2023/03/17 12:44:26.145 22309 22328 Error WM-WorkerWrapper 	... 3 more

Code of Conduct

  • I agree to follow this project's Code of Conduct
@brismithers
Copy link
Contributor

Hi @Arikaton thank you for the report! From the log It looks like the SDK is detecting the app has lost focus, and we have not yet initialized appContext via OneSignal.initWithContext (exception happens here, expected initialization is here).

I haven't been able to drive this myself. Are you able to show where/how you initialize the Unity OneSignal SDK? If you could provide more logging, specifically around that initialization time, that would also help.

Thanks!

@emawby
Copy link
Contributor

emawby commented Apr 18, 2023

Closing for now feel free to reopen if you have any additional details!

@emawby emawby closed this as completed Apr 18, 2023
@shefich
Copy link

shefich commented May 31, 2023

Stacktraces from Unity's Android Logcat:

2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper Work [ id=d7a6bda3-0c99-4ace-931d-e8c9098d8e5f, tags={ FOCUS_LOST_WORKER_TAG, com.onesignal.OSFocusHandler$OnLostFocusWorker } ] failed because it threw an exception/error
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper java.util.concurrent.ExecutionException: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:311)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at java.lang.Thread.run(Thread.java:1012)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OSUtils.packageInstalledAndEnabled(OSUtils.java:275)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OSUtils.isGMSInstalledAndEnabled(OSUtils.java:288)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OSUtils.supportsGooglePush(OSUtils.java:330)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OSUtils.getDeviceType(OSUtils.java:349)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OSUtils.isAndroidDeviceType(OSUtils.java:371)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.LocationController.isGooglePlayServicesAvailable(LocationController.java:337)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.LocationController.onFocusChange(LocationController.java:325)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OneSignal.onAppLostFocus(OneSignal.java:1352)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OSFocusHandler$Companion.onLostFocusDoWork(OSFocusHandler.kt:144)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at com.onesignal.OSFocusHandler$OnLostFocusWorker.doWork(OSFocusHandler.kt:123)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	at androidx.work.Worker$1.run(Worker.java:86)
2023.05.31 18:41:11.017 29030 29069 Error WM-WorkerWrapper 	... 3 more

The app started at 2023.05.31 18:41:10.800.
Unity 2020.3.48
OneSignal 3.0.10

Code:

 IEnumerator Start () {
		yield return new WaitForSeconds(.5f);
		OneSignal.Default.Initialize("xxx-xxx-xxx-xxx-xxx");
		PromptForPush();
		OneSignal.Default.SetLaunchURLsInApp(false);
		isInitialized = true;
    }

@shefich
Copy link

shefich commented May 31, 2023

For now happens on every start of the app.

@shefich
Copy link

shefich commented May 31, 2023

In case you want to see my manifest (maybe something wrong there):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools">
  <uses-permission android:name="android.permission.VIBRATE" />
  <application android:allowNativeHeapPointerTagging="false">
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector"
	android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
    <meta-data android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION" android:value="true" />
    <meta-data android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING" android:value="true" />
    <provider android:name="androidx.startup.InitializationProvider" android:authorities="com.xxx.xxx.androidx-startup" android:exported="false" tools:node="merge">
      <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup" android:initOrder="102" tools:node="merge"/>
    </provider>
  </application>
</manifest>

@shefich
Copy link

shefich commented Mar 14, 2024

Can someone reopen it?
OneSignal Unity SDK 3.0.10, 3.0.11

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