Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
La orientación a S+ (versión 31 y superior) requiere que se especifique uno de FLAG_IMMUTABLE o FLAG_MUTABLE al crear un PendingIntent, On AlarmPingSender

Problema

La orientación a S+ (versión 31 y superior) requiere que se especifique uno de FLAG_IMMUTABLE o FLAG_MUTABLE al crear un PendingIntent. Lo obtuve después de actualizar el SDK de destino a 31. El error siempre viene después de AlarmPingSender. Pero no conozco ninguna clase que haya usado AlarmPingSender.

 2021-10-31 10:43:04.990 17031-17341/com.app.mobile D/AlarmPingSender: Register alarmreceiver to MqttServiceMqttService.pingSender.com.app.mobile-2e24ccbde048f2e91635651784 2021-10-31 10:43:04.993 17031-17341/com.app.mobile E/AndroidRuntime: FATAL EXCEPTION: MQTT Rec: com.app.mobile-2e24ccbde048f2e91635651784 Process: com.app.mobile, PID: 17031 java.lang.IllegalArgumentException: com.app.mobile: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, eg if it needs to be used with inline replies or bubbles. at android.app.PendingIntent.checkFlags(PendingIntent.java:375) at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645) at android.app.PendingIntent.getBroadcast(PendingIntent.java:632) at org.eclipse.paho.android.service.AlarmPingSender.start(AlarmPingSender.java:76) at org.eclipse.paho.client.mqttv3.internal.ClientState.connected(ClientState.java:1150) at org.eclipse.paho.client.mqttv3.internal.ClientState.notifyReceivedAck(ClientState.java:987) at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:118) at java.lang.Thread.run(Thread.java:920)

Lo que ya hice

  • Actualice WorkManager a 2.7.0
  • configure AllProject para forzar el uso de WorkManager a 2.7.0
  • cambie todos los PendingIntent existentes para usar FLAG_IMMUTABLE
  • hay un código antiguo que todavía usa gcm y lo deshabilita
  • Actualización de todo el paquete de Firebase (algunos dijeron que se debe a una versión posterior de análisis)

Biblioteca utilizada

  • una señal
  • quisco
  • base de fuego
  • administrador de trabajo
over 4 years ago · Santiago Trujillo
7 answers
Answer question

0

Agrega lo siguiente a tus build.gradle(app) .

 dependencies { // For Java implementation 'androidx.work:work-runtime:2.7.1' // For Kotlin implementation 'androidx.work:work-runtime-ktx:2.7.1' }
over 4 years ago · Santiago Trujillo Report

0

Tuve este bloqueo pero no hay bibliotecas de terceros. Agregar esta importación con la última versión solucionará el bloqueo.

 implementation 'androidx.work:work-runtime-ktx:2.7.0-beta01'
over 4 years ago · Santiago Trujillo Report

0

Solución posible

Actualice Google Analytics a Firebase Analytics. Espero que resuelva sus problemas. También actualice toda la biblioteca que está usando.

Para mí, las siguientes soluciones resuelven el problema.

Agrega PendingIntent.FLAG_IMMUTABLE a tus intents pendientes.

Aquí hay un ejemplo -

PendingIntent pendingIntent = PendingIntent.getActivity(this, alarmID, notificationIntent, PendingIntent.FLAG_IMMUTABLE);

Para obtener más información, siga este enlace: https://developer.android.com/reference/android/app/PendingIntent#FLAG_IMMUTABLE

over 4 years ago · Santiago Trujillo Report

0

Después de varios intentos de arreglar esto, me di por vencido y traté de contactar a Qiscus. Y lanzan una nueva versión que maneja este cambio de comportamiento de Intención pendiente. Entonces, si alguien usa Qiscus y recibe este error, puede usar la última etiqueta

https://github.com/qiscus/qiscus-sdk-android/releases/tag/1.3.35

over 4 years ago · Santiago Trujillo Report

0

Intenta agregar permiso de alarma

 <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
over 4 years ago · Santiago Trujillo Report

0

Además de las respuestas de otros, cambié:

 implementation 'com.google.firebase:firebase-messaging:20.0.0'

para :

 implementation 'com.google.firebase:firebase-messaging:23.0.0'

y está funcionando ahora.

over 4 years ago · Santiago Trujillo Report

0

Este podría ser el problema con la versión de la biblioteca. Si tiene bibliotecas de versiones anteriores en su proyecto, debe actualizarlas a la última versión.

Por lo tanto, actualice la versión de la biblioteca de mensajería de Work Runtime y Firebase de la siguiente manera:

 dependencies { // For Java implementation 'androidx.work:work-runtime:2.7.1' // For Kotlin implementation 'androidx.work:work-runtime-ktx:2.7.1' implementation 'com.google.firebase:firebase-messaging:23.0.0' ... }

Además, asegúrese de que el código de intención pendiente sea algo como esto,

 PendingIntent pendingIntent = PendingIntent.getActivity(this, alarmID, notificationIntent, PendingIntent.FLAG_IMMUTABLE);
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!