I followed a tutorial on Mapbox link here that shows how to add an autocomplete search bar on Android application.
This is the java code in my MainActivity
private String my_token = "<my-token-from-mapbox>";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new PlaceAutocomplete.IntentBuilder()
.accessToken(my_token)
.build(this);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK && requestCode == 1) {
CarmenFeature feature = PlaceAutocomplete.getPlace(data);
Toast.makeText(this, feature.text(), Toast.LENGTH_LONG).show();
}
}
It all renders fine but when I type even just a single letter, the application crashes and I get this long error from the logcat
2020-09-18 12:30:01.271 21918-21918/com.alpha.istack E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.alpha.istack, PID: 21918
java.lang.BootstrapMethodError: Exception from call site #4 bootstrap method
at okhttp3.internal.Util.<clinit>(Util.java:87)
at okhttp3.internal.Util.skipLeadingAsciiWhitespace(Util.java:321)
at okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1313)
at okhttp3.HttpUrl.get(HttpUrl.java:917)
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:492)
at com.mapbox.core.MapboxService.getService(MapboxService.java:132)
at com.mapbox.api.geocoding.v5.MapboxGeocoding.initializeCall(MapboxGeocoding.java:86)
at com.mapbox.core.MapboxService.getCall(MapboxService.java:69)
at com.mapbox.core.MapboxService.enqueueCall(MapboxService.java:95)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.viewmodel.PlaceAutocompleteViewModel.onQueryChange(PlaceAutocompleteViewModel.java:87)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.PlaceAutocompleteFragment.onQueryChange(PlaceAutocompleteFragment.java:155)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.SearchView.onTextChanged(SearchView.java:82)
at android.widget.TextView.sendOnTextChanged(TextView.java:9828)
at android.widget.TextView.handleTextChanged(TextView.java:9925)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12750)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1263)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:575)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:506)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:36)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:861)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:207)
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:187)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:365)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:94)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7107)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:536)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)
***Caused by: java.lang.ClassCastException: Bootstrap method returned null***
at okhttp3.internal.Util.<clinit>(Util.java:87)
at okhttp3.internal.Util.skipLeadingAsciiWhitespace(Util.java:321)
at okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1313)
at okhttp3.HttpUrl.get(HttpUrl.java:917)
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:492)
at com.mapbox.core.MapboxService.getService(MapboxService.java:132)
at com.mapbox.api.geocoding.v5.MapboxGeocoding.initializeCall(MapboxGeocoding.java:86)
at com.mapbox.core.MapboxService.getCall(MapboxService.java:69)
at com.mapbox.core.MapboxService.enqueueCall(MapboxService.java:95)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.viewmodel.PlaceAutocompleteViewModel.onQueryChange(PlaceAutocompleteViewModel.java:87)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.PlaceAutocompleteFragment.onQueryChange(PlaceAutocompleteFragment.java:155)
at com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.SearchView.onTextChanged(SearchView.java:82)
at android.widget.TextView.sendOnTextChanged(TextView.java:9828)
at android.widget.TextView.handleTextChanged(TextView.java:9925)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12750)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1263)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:575)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:506)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:36)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:861)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:207)
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:187)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:365)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:94)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7107)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:536)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)
which I don't clearly understand. I hope someone out there can help me. I've double checked all the dependencies, manifest file and layout files but wasn't able to find anything that might have caused the app to crash. Thanks.