Com a chegada do Android 15 (API 35), desenvolvedores Android que utilizam Kotlin precisam ficar atentos a uma mudança importante que pode afetar diretamente a estabilidade de seus aplicativos. A questão envolve as extensões list.removeFirst() e list.removeLast() do Kotlin e suas interações com as novas APIs do List introduzidas no Android 15.
O que está acontecendo?
A partir do Android 15, foram introduzidos métodos nativos para List.removeFirst() e List.removeLast() no nível da API. O problema surge quando seu app é compilado com o compileSdk atualizado para 35, mas executado em versões anteriores do Android (API 34 ou inferior). Isso causa erros de execução, com mensagens como:
java.lang.NoSuchMethodError: No virtual method removeFirst()
Este problema ocorre porque, nessas versões anteriores, os métodos nativos ainda não existem, e o Kotlin não consegue resolver adequadamente essas chamadas.
Como evitar esse problema?
A solução é simples: substitua as chamadas problemáticas por alternativas que funcionem de forma consistente em todas as versões do Android. Em vez de removeFirst(), utilize:
list.removeAt(0)
E, em vez de removeLast(), use:
list.removeAt(list.lastIndex)
Essas soluções são seguras e funcionarão em qualquer versão do Android, garantindo que seu app não falhe em versões mais antigas.
Detectando e corrigindo automaticamente:
A boa notícia é que o Android Studio, a partir da versão 2024.3.1, já inclui uma ferramenta de lint que pode ajudar a identificar esses problemas automaticamente. Ao rodar a verificação com o lint, ele detectará o uso dessas APIs e sugerirá correções rápidas para substituí-las. Isso agiliza o processo e minimiza a possibilidade de que essas falhas acabem em produção.
Conclusão
Se você está desenvolvendo para Android e usa Kotlin, é fundamental revisar suas implementações de list.removeFirst() e list.removeLast() antes de atualizar o compileSdk para 35. Essa mudança pode parecer sutil, mas pode causar erros sérios em dispositivos rodando versões mais antigas do Android.
Mantenha seus apps estáveis, faça as alterações necessárias e utilize as ferramentas disponíveis para garantir que tudo funcione como esperado. Afinal, ninguém quer um app falhando em produção, certo?
Fique atento às mudanças e siga desenvolvendo com segurança!
*As opiniões aqui colocadas refletem a minha opinião pessoal e não necessariamente a opinião da Compass UOL.