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

Offen
#604 1 Kommentar 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
42/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
android, java
Bereich
mobile-dev

Rechercherichtung

Beginnen Sie in StringUtils.java, insbesondere bei getBytesUtf8 und newStringUtf8, die der Stacktrace als auf Android API <19 fehlschlagend identifiziert. Reproduzieren Sie den Absturz auf einer betroffenen API-Ebene und verfolgen Sie die in JsonWebSignature.java und GoogleCredential.java angezeigten Aufrufer. Als erledigt gilt die Aufgabe, wenn diese UTF-8-Operationen die nicht verfügbare StandardCharsets-Klasse auf API 18 und darunter nicht mehr laden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

type: feature request

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!

Vorherrschende Sprache
Java
Sterne
1.4k
Forks
476
Ø Merge
10 Std. 47 Min.
Gemergte PRs (30 T.)
3

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus googleapis/google-http-java-client

Alle Issues in googleapis/google-http-java-client

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.