title: Exception while trying to receive OneSignal notification on Android API level lower than 26
body: <p>Today I noticed that my app stopped receiving notifications from OneSignal, on pre Oreo devices (API level lower than 26). While trying to debug, I've noticed this Exception being throw when I should receive the notification.</p>
  
  <pre><code>Rejecting re-init on previously-failed class java.lang.Class&lt;com.onesignal.JobIntentService$JobServiceEngineImpl&gt;: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/app/job/JobServiceEngine;
      at android.content.Intent com.onesignal.NotificationExtenderService.getIntent(android.content.Context) (NotificationExtenderService.java:212)
                  at boolean com.onesignal.NotificationBundleProcessor.startExtenderService(android.content.Context, android.os.Bundle, com.onesignal.NotificationBundleProcessor$ProcessedBundleResult) (NotificationBundleProcessor.java:456)
                  at com.onesignal.NotificationBundleProcessor$ProcessedBundleResult com.onesignal.NotificationBundleProcessor.processBundleFromReceiver(android.content.Context, android.os.Bundle) (NotificationBundleProcessor.java:430)
                  at com.onesignal.NotificationBundleProcessor$ProcessedBundleResult com.onesignal.GcmBroadcastReceiver.processOrderBroadcast(android.content.Context, android.content.Intent, android.os.Bundle) (GcmBroadcastReceiver.java:125)
                  at void com.onesignal.GcmBroadcastReceiver.onReceive(android.content.Context, android.content.Intent) (GcmBroadcastReceiver.java:72)
                  at void android.app.ActivityThread.handleReceiver(android.app.ActivityThread$ReceiverData) (ActivityThread.java:3032)
                  at void android.app.ActivityThread.-wrap18(android.app.ActivityThread, android.app.ActivityThread$ReceiverData) (ActivityThread.java:-1)
                  at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1557)
                  at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
                  at void android.os.Looper.loop() (Looper.java:154)
                  at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6123)
                  at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
                  at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:867)
                  at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:757)
              Caused by: java.lang.ClassNotFoundException: Didn't find class "android.app.job.JobServiceEngine" on path: DexPathList[[ ... ],nativeLibraryDirectories=[ ... ]
                  at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
                  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
                  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
                  at android.content.Intent com.onesignal.NotificationExtenderService.getIntent(android.content.Context) (NotificationExtenderService.java:212)
                  at boolean com.onesignal.NotificationBundleProcessor.startExtenderService(android.content.Context, android.os.Bundle, com.onesignal.NotificationBundleProcessor$ProcessedBundleResult) (NotificationBundleProcessor.java:456)
                  at com.onesignal.NotificationBundleProcessor$ProcessedBundleResult com.onesignal.NotificationBundleProcessor.processBundleFromReceiver(android.content.Context, android.os.Bundle) (NotificationBundleProcessor.java:430)
                  at com.onesignal.NotificationBundleProcessor$ProcessedBundleResult com.onesignal.GcmBroadcastReceiver.processOrderBroadcast(android.content.Context, android.content.Intent, android.os.Bundle) (GcmBroadcastReceiver.java:125)
                  at void com.onesignal.GcmBroadcastReceiver.onReceive(android.content.Context, android.content.Intent) (GcmBroadcastReceiver.java:72)
                  at void android.app.ActivityThread.handleReceiver(android.app.ActivityThread$ReceiverData) (ActivityThread.java:3032)
                  at void android.app.ActivityThread.-wrap18(android.app.ActivityThread, android.app.ActivityThread$ReceiverData) (ActivityThread.java:-1)
                  at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1557)
                  at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
                  at void android.os.Looper.loop() (Looper.java:154)
                  at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6123)
                  at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
                  at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:867)
                  at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:757)
  </code></pre>
  
  <p>Sometimes the Exception is not thrown (especially while using emulators), but the notification still won't show up</p>
  
  <p>I'm using the OneSignal <strong>3.10.6</strong> gradle implementation with a custom NotificationExtenderService. (
  Any idea on what could be causing this? Recently I've changed our project proguard rules, but even after i disable proguard, the error persists.</p>
  
  <p><strong>Edit</strong>
  Seems like the problem is in the <strong>NotificationExtenderService</strong>. When I disabled our CustomNotificationExtenderService, and added a NotificationReceivedHandler, the notifications started to arrive, however, I can't switch to NotificationReceivedHandler because I still need to be able to choose which notifications I want to show to the user, as well as what show as an alert or simply as a notification.</p>