Näyttää siltä, että sovelluksemme ei tue selainta.

Yleiset syylliset

Yleisesti ANR:t laukeavat, koska sovelluksesi tekee seuraavaa:

  1. Toteuttaa hitaita operaatioita I/O:lla pääsäikeessä.
  2. Tekee pitkiä laskutoimituksia pääsäikeessä.
  3. Toteuttaa synkronisen sidontakutsun pääsäikeessä ja toisen prosessin vastaaminen vie aikaa.
  4. Odottaa pääsäikeessä toista säiettä, joka suorittaa pitkän operaation.
  5. Juuttuu umpikujaan. Pääsäikeessä voi tapahtua umpikuja, kun se odottaa resursseja, joita toinen prosessi ei ole vapauttanut, joten se ei voi hankkia tarvitsemiaan resursseja. Nämä toiset prosessit voivat olla toisessa säikeessä, omassa prosessissasi tai sidontakutsussa.

Diagnoositekniikat

Käytä strict-tilaa

Mukana StrictMode voit löytää vahingossa tapahtuneet I/O-operaatiot.

Lue lisää StrictMode:sta virallisesta dokumentaatiosta.

Taustan ANR-dialogien ottaminen käyttöön kehittäjävalinnoissa

Käyttäjä ei näe kaikkia ANR:iä, joten sovelluksella voi olla suorituskykyongelmia käyttäjän huomaamatta. Ota taustan ANR-valintaikkunat käyttöön kehittäjäasetuksissa.

Tarkista jäljitystiedostot adb:n avulla

Jäljitystiedostot luodaan ANR-tapahtumassa. Voit hakea nämä tiedostot käyttämällä Android Debug Bridgeä (adb) pääkäyttäjänä seuraavilla komennoilla:

adb rootadb shell ls /data/anradb pull /data/anr/<filename>

Jätä kommentti