Como saber se uma linha específica é a que contém erros no Android Studio
Well, no Monitor Android, você verá o log dos seus erros em vermelho. Ele terá uma descrição dos erros/exceções, o nome do arquivo e um número de linha no final entre parênteses. Like this:
- Fatal Exception: java.lang.StackOverflowError
- at java.lang.ref.FinalizerReference.add(FinalizerReference.java:54)
- at java.security.MessageDigestSpi.(MessageDigestSpi.java:30)
- at java.security.MessageDigest.(MessageDigest.java:69)
- at com.android.org.conscrypt.OpenSSLMessageDigestJDK.(OpenSSLMessageDigestJDK.java:53)
- at com.android.org.conscrypt.OpenSSLMessageDigestJDK.(OpenSSLMessageDigestJDK.java:25)
- at java.lang.Class.newInstanceImpl(Class.java)
- at java.lang.Class.newInstance(Class.java:1208)
- at java.security.Provider(Provider.java:998)
- at com.your.app.utils.HTTPUtils.sendRequest(HTTPUtils.java:56)
- at com.your.app.tasks.Fetch.execute(Fetch.java:56)
- at com.your.app.activities.MainActivity.getData(MainActivity.java:2580)
It’s a huge mess, right? Bem não, você pode ignorar praticamente tudo o que está aqui. All you need to look for is the very first line:
- Fatal Exception: java.lang.StackOverflowError
And also the very first line that contains your app’s package name:
- at com.your.app.utils.HTTPUtils.sendRequest(HTTPUtils.java:56)
You then know that line 56 in the file HTTPUtils.java causes a StackOverflowError. Você pode então CMD+Click para ir para essa linha. Tudo o que você precisa fazer agora é ir ao Google "StackOveflowError + [contexto no que a linha 56 está tentando fazer]".
Isso funciona para praticamente qualquer erro/exceção de tempo de execução, exceto as bibliotecas de suporte e algumas dependências.