googleapis / googleapis/google-http-java-client

java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets in Android API < 19

Aberta
#604 1 comentário 3 reações 0 responsáveis Ver no GitHub
type: feature request
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

Abrir o 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

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.