googleapis / googleapis/google-http-java-client
java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets in Android API < 19
- Linguagem predominante
- Java
- Estrelas
- 1.4k
- Forks
- 473
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Hi,
we have problems with the latest version of your library in devices running Android 4.3 (API 18) or lower. `StandardCharsets` was added in Android API 19 so any call to methods using that (for example, `StringUtils.getBytesUtf8` or `StringUtils.newStringUtf8`) causes a crash in our app.
#### Environment details
- OS: **Android API < 19**
- google-http-java-client version: **1.28**
#### Stacktrace
```
java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at com.google.api.client.util.StringUtils.getBytesUtf8(StringUtils.java:52)
at com.google.api.client.json.webtoken.JsonWebSignature.signUsingRsaSha256(JsonWebSignature.java:636)
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:388)
at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:494)
at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217)
at com.google.api.client.googleapis.batch.BatchRequest$BatchInterceptor.intercept(BatchRequest.java:281)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:911)
at com.google.api.client.googleapis.batch.BatchRequest.execute(BatchRequest.java:233)
at our.app.PubSubManager.sendTopic(PubSubManager.java:100)
at java.lang.Thread.run(Thread.java:841)
```
#### Any additional information below
https://developer.android.com/reference/java/nio/charset/StandardCharsets.html
####
Thanks!
Guia de contribuição
Direção de pesquisa
Comece em StringUtils.java, especialmente em getBytesUtf8 e newStringUtf8, que o stack trace identifica como falhando no Android API <19. Reproduza o crash em um nível de API afetado e rastreie os chamadores mostrados em JsonWebSignature.java e GoogleCredential.java. Está concluído quando essas operações UTF-8 deixarem de carregar a classe StandardCharsets, que não está disponível no API 18 e inferiores.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- android, java
- Domínio
- mobile-dev
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 42/100