8

I have an app on playstore and recently I have been getting these errors only on Android 8.0 devices. Please see the android stacktrace which I received from Google Play Console. I have also included the firebase helper classes. Thanks in advance :)

java.lang.IllegalStateException: 
  at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1737)
  at android.app.ContextImpl.startService (ContextImpl.java:1693)
  at android.content.ContextWrapper.startService (ContextWrapper.java:650)
  at android.support.v4.content.WakefulBroadcastReceiver.startWakefulService (Unknown Source:22)
  at com.google.firebase.iid.zzg.zzg (Unknown Source:9)
  at com.google.firebase.iid.zzg.zzb (Unknown Source:78)
  at com.google.firebase.iid.zzg.zzf (Unknown Source:2)
  at com.google.firebase.iid.FirebaseInstanceIdService.a (Unknown Source:23)
  at com.google.firebase.iid.FirebaseInstanceIdService.a (Unknown Source:34)
  at com.google.firebase.iid.FirebaseInstanceId.<init> (Unknown Source:31)
  at com.google.firebase.iid.FirebaseInstanceId.getInstance (Unknown Source:47)
  at com.google.firebase.iid.FirebaseInstanceId.getInstance (Unknown Source:4)
  at com.google.firebase.iid.FirebaseInstanceIdService.zza (Unknown Source:14)
  at com.google.firebase.iid.FirebaseInstanceIdService.handleIntent (Unknown Source:35)
  at com.google.firebase.iid.zzb$zza$1.run (Unknown Source:24)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:784) 

MyFirebaseInstanceIdService class

public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {

    private static final String REG_TOKEN = "REG_TOKEN";

    @Override
    public void onTokenRefresh() {

        String recent_token = FirebaseInstanceId.getInstance().getToken();
        Log.d(REG_TOKEN, recent_token);

    }
}

MyFirebaseMessagingService class

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Intent intent = new Intent(getApplicationContext(), OnlineActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
        NotificationCompat.Builder notifcationBuilder = new NotificationCompat.Builder(getApplicationContext());
        notifcationBuilder.setContentTitle("Dictionary Notification");
        notifcationBuilder.setContentText(remoteMessage.getNotification().getBody());
        notifcationBuilder.setAutoCancel(true);
        notifcationBuilder.setSmallIcon(R.mipmap.ic_launcher);
        notifcationBuilder.setContentIntent(pendingIntent);
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        if (notificationManager != null) {
            notificationManager.notify(0, notifcationBuilder.build());
        }

    }
}

Gradle file:

dependencies {
    implementation 'com.android.support:support-vector-drawable:27.1.1'

    implementation 'com.google.android.gms:play-services-plus:15.0.1'
    implementation fileTree(dir: 'libs', include: ['*.jar'])


    implementation 'com.google.firebase:firebase-core:16.0.1'

    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.github.Hitomis:CircleMenu:v1.1.0'


    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'com.mindorks:placeholderview:0.2.7'


    implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true;
    }
    testImplementation 'junit:junit:4.12'


    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.github.amlcurran.showcaseview:library:5.4.3'
    implementation 'com.pacioianu.david:ink-page-indicator:1.2.0'
    implementation 'com.github.zcweng:switch-button:0.0.3@aar'


    // Google
    implementation 'com.google.android.gms:play-services-auth:15.0.1'

    // Firebase
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.2'
    implementation 'com.google.firebase:firebase-storage:16.0.1'
    implementation 'com.firebaseui:firebase-ui-database:1.2.0'
    implementation 'com.google.firebase:firebase-messaging:17.1.0'



    implementation 'com.github.bumptech.glide:glide:3.7.0'
    implementation 'de.hdodenhof:circleimageview:1.3.0'
    implementation 'com.codemybrainsout.onboarding:onboarder:1.0.4'
    implementation 'com.google.android.gms:play-services-vision:15.0.2'
    implementation 'com.huxq17.android:SwipeCardsView:1.3.5'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.airbnb.android:lottie:2.5.4'


}

apply plugin: 'com.google.gms.google-services'
9
  • Did you use proguard for your published app? If so, did you upload the mapping file in your console? Commented Jul 21, 2018 at 3:46
  • @MRah sorry, unfortunately, I had forgotten to upload the mapping file for the latest version. I just uploaded it, hopefully, I can trace something. Thanks for reminding. Commented Jul 21, 2018 at 4:30
  • Support for Android 8 was added to Firebase version 10.2.1. Are you building with Firebase libs that are that version or greater? Commented Jul 21, 2018 at 15:03
  • @Bob Thanks. I'll try updating my gradle with the latest version when I get home. Commented Jul 21, 2018 at 15:27
  • @Bob, I tried updating the firebase version to the latest one I'm getting "Please fix the version conflict either by updating the version of the google-services plugin". I updated the google service but nothing seemed to be working. Sorry for replying late. Commented Jul 24, 2018 at 21:18

1 Answer 1

1

This propably happens due to new background service restrictions introduced in Android 8 Oreo, see: https://developer.android.com/about/versions/oreo/android-8.0-changes#back-all

One suggested solution is to use JobScheduler (which I did), but this does not seem appropriate to a Firebase message receiver, so you might want to check the docs if there are some hints on this.

Sign up to request clarification or add additional context in comments.

1 Comment

Can you give an example how to implement jobscheduler for starting a service that throws this exception?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.