markzhai / markzhai/AndroidPerformanceMonitor
android12崩溃,PendingIntent标志位需要适配
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 6.7k
- Fork
- 1k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
java.lang.IllegalArgumentException: 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, e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:378)
at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:461)
at android.app.PendingIntent.getActivity(PendingIntent.java:447)
at android.app.PendingIntent.getActivity(PendingIntent.java:411)
at com.github.moduth.blockcanary.DisplayService.onBlock(DisplayService.java:46)
at com.github.moduth.blockcanary.BlockCanaryInternals$1.onBlockEvent(BlockCanaryInternals.java:67)
at com.github.moduth.blockcanary.LooperMonitor$1.run(LooperMonitor.java:80)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.os.HandlerThread.run(HandlerThread.java:67)
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia da DisplayService.java, riga 46, in DisplayService.onBlock, dove viene creato il PendingIntent e ha origine lo stack trace di Android 12. Leggi il flusso di notifica circostante e verifica il comportamento del flag di PendingIntent per le app che hanno come target Android 12 o versioni successive. Il lavoro è completato quando il crash non si verifica più su quella piattaforma e la notifica di blocco continua a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- android, java
- Ambito
- mobile
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 35/100