Не исключение JSON Массив с использованием Mapbox API для Android Я использую плагин Mapbox place implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-places:0.6.0'
для android для поиска определенного местоположения. Но когда я запускаю это приложение на своем мобильном телефоне, я получаю исключение времени выполнения как com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Not a JSON Array: {"type":"Point","coordinates":[-122.3964485,37.7912561]}
Это мой фрагмент кода:
private void addUserLocations() {
home = CarmenFeature.builder().text("Mapbox SF Office")
.geometry(Point.fromLngLat(-122.3964485, 37.7912561))
.placeName("50 Beale St, San Francisco, CA")
.id("mapbox-sf")
.properties(new JsonObject())
.build();
work = CarmenFeature.builder().text("Mapbox DC Office")
.placeName("740 15th Street NW, Washington DC")
.geometry(Point.fromLngLat(-77.0338348, 38.899750))
.id("mapbox-dc")
.properties(new JsonObject())
.build();
}
И исключение:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Not a JSON Array: {"type":"Point","coordinates":[-122.3964485,37.7912561]}
at com.google.gson.Gson.fromJson(Gson.java:939)
at com.google.gson.Gson.fromJson(Gson.java:994)
at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:162)
at com.mapbox.geojson.gson.GeometryDeserializer.deserialize(GeometryDeserializer.java:58)
at com.mapbox.geojson.gson.GeometryDeserializer.deserialize(GeometryDeserializer.java:19)
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
at com.mapbox.api.geocoding.v5.models.AutoValue_CarmenFeature$GsonTypeAdapter.read(AutoValue_CarmenFeature.java:134)
at com.mapbox.api.geocoding.v5.models.AutoValue_CarmenFeature$GsonTypeAdapter.read(AutoValue_CarmenFeature.java:34)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
at com.mapbox.api.geocoding.v5.models.CarmenFeature.fromJson(CarmenFeature.java:64)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.viewmodel.PlaceAutocompleteViewModel.getFavoritePlaces(PlaceAutocompleteViewModel.java:98)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.PlaceAutocompleteFragment.updateFavoritePlacesView(PlaceAutocompleteFragment.java:232)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.PlaceAutocompleteFragment.onActivityCreated(PlaceAutocompleteFragment.java:126)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2460)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1483)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:620)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1392)
at android.app.Activity.performStart(Activity.java:7304)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3193)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2013)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:227)
at android.app.ActivityThread.main(ActivityThread.java:7217)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:575)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:887)
2020-01-31 20:21:03.833 12793-12793/com.example.mpboxdirectionwsearch E/AndroidRuntime: Caused by: java.lang.IllegalStateException: Not a JSON Array: {"type":"Point","coordinates":[-122.3964485,37.7912561]}
at com.google.gson.JsonElement.getAsJsonArray(JsonElement.java:107)
at com.mapbox.geojson.gson.PointDeserializer.deserialize(PointDeserializer.java:47)
at com.mapbox.geojson.gson.PointDeserializer.deserialize(PointDeserializer.java:20)
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
at com.google.gson.Gson.fromJson(Gson.java:927)
... 43 more