2

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.

Riven
  • 375
  • 2
  • 11

1 Answers1

3

See https://stackoverflow.com/a/60991383/6358488

Try adding the following block inside of the android { } section in your app-level build.gradle file:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

If you're using Kotlin, you should add the following block as well:

kotlinOptions {
    jvmTarget = "1.8"
}

https://developer.android.com/studio/write/java8-support#supported_features

langsmith
  • 2,529
  • 1
  • 11
  • 13
  • 2
    Whoa its working now, Apparently, I had the wrong assumption that the problem was entirely with mapbox when it actually was the Java Version. – Riven Sep 19 '20 at 13:45
  • Great, glad it's working! Please consider marking my answer as correct :) – langsmith Sep 19 '20 at 18:23