googleapis / googleapis/google-http-java-client

Proguard/r8 instructions missing

Abierto
#1,843 3 comentarios 0 reacciones 0 asignados Ver en GitHub
type: feature request
Lenguaje dominante
Java
Estrellas
1.4k
Forks
473
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

From the Readme, I am following [Setup Instructions](https://googleapis.github.io/google-http-java-client/setup.html), then [Android](https://googleapis.github.io/google-http-java-client/android.html). Here it says "pay special attention to the Android instructions for [ProGuard](https://googleapis.github.io/google-http-java-client/setup.html#proguard)." but the referenced Proguard section does not exist.
I have been using this library with R8 successfully in the past, but recently tried out full mode, and got following exception:

```
Non-fatal Exception: java.lang.ExceptionInInitializerError:
at java.lang.Class.newInstance(Class.java)
at com.google.api.client.util.Types.newInstance(Types.java:113)
at com.google.api.client.util.Data.newMapInstance(Data.java:550)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:766)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:360)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:335)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:79)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:73)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:460)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:603)
at org.totschnig.drive.sync.DriveServiceHelper.getFile(DriveServiceHelper.java:143)
at org.totschnig.drive.sync.GoogleDriveBackendProvider.requireBaseFolder(GoogleDriveBackendProvider.kt:403)
at org.totschnig.drive.sync.GoogleDriveBackendProvider.(GoogleDriveBackendProvider.kt:420)
at org.totschnig.drive.sync.GoogleDriveBackendProviderFactory.fromAccount(GoogleDriveBackendProviderFactory.kt:19)
at org.totschnig.drive.sync.GoogleDriveBackendProviderFactory.fromAccount(GoogleDriveBackendProviderFactory.kt:12)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory.from-0E7RQCE(SyncBackendProviderFactory.kt:18)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory.access$from-0E7RQCE(SyncBackendProviderFactory.kt:12)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory$Companion.get-0E7RQCE(SyncBackendProviderFactory.kt:41)
at org.totschnig.myexpenses.sync.SyncAdapter.onPerformSync(SyncAdapter.kt:123)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:354)

Caused by java.lang.IllegalArgumentException: unable to create new instance of class kc.a because it is abstract and because it has no accessible default constructor
at com.google.api.client.util.Types.handleExceptionForNewInstance(Types.java:162)
at com.google.api.client.util.Types.newInstance(Types.java:117)
at com.google.api.client.util.Data.createNullInstance(Data.java:166)
at com.google.api.client.util.Data.nullOf(Data.java:134)
at com.google.api.services.drive.model.File.(File.java:69)
at java.lang.Class.newInstance(Class.java)
at com.google.api.client.util.Types.newInstance(Types.java:113)
at com.google.api.client.util.Data.newMapInstance(Data.java:550)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:766)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:360)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:335)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:79)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:73)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:460)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:603)
at org.totschnig.drive.sync.DriveServiceHelper.getFile(DriveServiceHelper.java:143)
at org.totschnig.drive.sync.GoogleDriveBackendProvider.requireBaseFolder(GoogleDriveBackendProvider.kt:403)
at org.totschnig.drive.sync.GoogleDriveBackendProvider.(GoogleDriveBackendProvider.kt:420)
at org.totschnig.drive.sync.GoogleDriveBackendProviderFactory.fromAccount(GoogleDriveBackendProviderFactory.kt:19)
at org.totschnig.drive.sync.GoogleDriveBackendProviderFactory.fromAccount(GoogleDriveBackendProviderFactory.kt:12)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory.from-0E7RQCE(SyncBackendProviderFactory.kt:18)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory.access$from-0E7RQCE(SyncBackendProviderFactory.kt:12)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory$Companion.get-0E7RQCE(SyncBackendProviderFactory.kt:41)
at org.totschnig.myexpenses.sync.SyncAdapter.onPerformSync(SyncAdapter.kt:123)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:354)

Caused by java.lang.InstantiationException: java.lang.Class cannot be instantiated
at java.lang.Class.newInstance(Class.java)
at com.google.api.client.util.Types.newInstance(Types.java:113)
at com.google.api.client.util.Data.createNullInstance(Data.java:166)
at com.google.api.client.util.Data.nullOf(Data.java:134)
at com.google.api.services.drive.model.File.(File.java:69)
at java.lang.Class.newInstance(Class.java)
at com.google.api.client.util.Types.newInstance(Types.java:113)
at com.google.api.client.util.Data.newMapInstance(Data.java:550)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:766)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:360)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:335)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:79)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:73)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:460)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:603)
at org.totschnig.drive.sync.DriveServiceHelper.getFile(DriveServiceHelper.java:143)
at org.totschnig.drive.sync.GoogleDriveBackendProvider.requireBaseFolder(GoogleDriveBackendProvider.kt:403)
at org.totschnig.drive.sync.GoogleDriveBackendProvider.(GoogleDriveBackendProvider.kt:420)
at org.totschnig.drive.sync.GoogleDriveBackendProviderFactory.fromAccount(GoogleDriveBackendProviderFactory.kt:19)
at org.totschnig.drive.sync.GoogleDriveBackendProviderFactory.fromAccount(GoogleDriveBackendProviderFactory.kt:12)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory.from-0E7RQCE(SyncBackendProviderFactory.kt:18)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory.access$from-0E7RQCE(SyncBackendProviderFactory.kt:12)
at org.totschnig.myexpenses.sync.SyncBackendProviderFactory$Companion.get-0E7RQCE(SyncBackendProviderFactory.kt:41)
at org.totschnig.myexpenses.sync.SyncAdapter.onPerformSync(SyncAdapter.kt:123)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:354)
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.