【问题标题】:Google Places API crash after installing app from play console从 Play 控制台安装应用程序后 Google Places API 崩溃
【发布时间】:2021-05-25 23:54:16
【问题描述】:

在将我的应用上传到 Play 商店之前,我在 Play 控制台中创建了一个测试版本。 该应用程序有一个地方自动完成字段,但是,当我从 playstore 安装我的应用程序的测试版本时,每次我在自动完成字段中写一些东西然后按空格键就崩溃了!

在 android studio 上测试应用时,它运行完美,没有任何错误或崩溃。

感谢您的帮助。

编辑:我正在使用这个自动完成库(https://github.com/seatgeek/android-PlacesAutocompleteTextView

这是崩溃报告标题:

java.lang.AssertionError

崩溃报告:

java.lang.AssertionError: 
  at com.google.gson.Gson.fromJson (Gson.java)
  at com.google.gson.Gson.fromJson (Gson.java)
  at com.seatgeek.placesautocomplete.json.GsonPlacesApiJsonParser.autocompleteFromStream (GsonPlacesApiJsonParser.java:14)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient$1.handleStreamResult (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient$1.handleStreamResult (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.model.Status.isSuccessful (Status.java:30)
  at com.seatgeek.placesautocomplete.network.HttpUrlConnectionMapsHttpClient.isErrorResponse (HttpUrlConnectionMapsHttpClient.java:30)
  at com.seatgeek.placesautocomplete.network.HttpUrlConnectionMapsHttpClient.executeNetworkRequest (HttpUrlConnectionMapsHttpClient.java:30)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient.executeAutocompleteRequest (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.PlacesApi.autocomplete (PlacesApi.java)
  at com.seatgeek.placesautocomplete.adapter.PlacesApiFilter.performFiltering (PlacesApiFilter.java)
  at android.widget.Filter$RequestHandler.handleMessage (Filter.java:236)
  at android.os.Handler.dispatchMessage (Handler.java:107)
  at android.os.Looper.loop (Looper.java:214)
  at android.os.HandlerThread.run (HandlerThread.java:67)
Caused by: java.lang.AssertionError: 
  at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init> (TypeAdapters.java:87)
  at com.google.gson.internal.bind.TypeAdapters$30.create (TypeAdapters.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create (CollectionTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create (CollectionTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.Gson.fromJson (Gson.java)
  at com.google.gson.Gson.fromJson (Gson.java)
  at com.seatgeek.placesautocomplete.json.GsonPlacesApiJsonParser.autocompleteFromStream (GsonPlacesApiJsonParser.java:14)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient$1.handleStreamResult (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient$1.handleStreamResult (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.model.Status.isSuccessful (Status.java:30)
  at com.seatgeek.placesautocomplete.network.HttpUrlConnectionMapsHttpClient.isErrorResponse (HttpUrlConnectionMapsHttpClient.java:30)
  at com.seatgeek.placesautocomplete.network.HttpUrlConnectionMapsHttpClient.executeNetworkRequest (HttpUrlConnectionMapsHttpClient.java:30)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient.executeAutocompleteRequest (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.PlacesApi.autocomplete (PlacesApi.java)
  at com.seatgeek.placesautocomplete.adapter.PlacesApiFilter.performFiltering (PlacesApiFilter.java)
  at android.widget.Filter$RequestHandler.handleMessage (Filter.java:236)
  at android.os.Handler.dispatchMessage (Handler.java:107)
  at android.os.Looper.loop (Looper.java:214)
  at android.os.HandlerThread.run (HandlerThread.java:67)
Caused by: java.lang.NoSuchFieldException: 
  at java.lang.Class.getField (Class.java:1604)
  at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init> (TypeAdapters.java:34)
  at com.google.gson.internal.bind.TypeAdapters$30.create (TypeAdapters.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create (CollectionTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create (CollectionTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create (ReflectiveTypeAdapterFactory.java)
  at com.google.gson.Gson.getAdapter (Gson.java:68)
  or                     .setDelegate (Gson.java:68)
  at com.google.gson.Gson.fromJson (Gson.java)
  at com.google.gson.Gson.fromJson (Gson.java)
  at com.seatgeek.placesautocomplete.json.GsonPlacesApiJsonParser.autocompleteFromStream (GsonPlacesApiJsonParser.java:14)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient$1.handleStreamResult (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient$1.handleStreamResult (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.model.Status.isSuccessful (Status.java:30)
  at com.seatgeek.placesautocomplete.network.HttpUrlConnectionMapsHttpClient.isErrorResponse (HttpUrlConnectionMapsHttpClient.java:30)
  at com.seatgeek.placesautocomplete.network.HttpUrlConnectionMapsHttpClient.executeNetworkRequest (HttpUrlConnectionMapsHttpClient.java:30)
  at com.seatgeek.placesautocomplete.network.AbstractPlacesHttpClient.executeAutocompleteRequest (AbstractPlacesHttpClient.java)
  at com.seatgeek.placesautocomplete.PlacesApi.autocomplete (PlacesApi.java)
  at com.seatgeek.placesautocomplete.adapter.PlacesApiFilter.performFiltering (PlacesApiFilter.java)
  at android.widget.Filter$RequestHandler.handleMessage (Filter.java:236)
  at android.os.Handler.dispatchMessage (Handler.java:107)
  at android.os.Looper.loop (Looper.java:214)
  at android.os.HandlerThread.run (HandlerThread.java:67)

【问题讨论】:

  • 将崩溃报告附加到您的问题中
  • 添加了崩溃报告,感谢 Abdullah
  • 好的,接下来,在你解析数据的地方添加代码,相信解析可能会有些问题。

标签: android google-play-services google-places-api google-play-console googleplacesautocomplete


【解决方案1】:

所以它是proguard,我必须将库包含在“proguard-rules.pro”中,如下所示:

-keep class com.seatgeek.*{ *; }
-keep class com.seatgeek.placesautocomplete**{ *; }
-keep class com.seatgeek.placesautocomplete.json**{ *; }
-keepclassmembers enum com.seatgeek.* { *; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2017-10-23
    • 2014-10-24
    • 2019-04-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多