GeoAPIContextがクラッシュする

ConCon19:

Androidプログラミングは初めてです。2つの地理的ポイント間のルートを計算する必要があるプロジェクトを作成しています。ポイントとGoogleマップの両方が正しくありますが、GeoApiContextを呼び出すとプログラムがクラッシュします。これはエラーです:

D/DockFinderActivity: calculateDirections: calculating directions.
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.anchor.demo, PID: 21685
java.lang.BootstrapMethodError: Exception from call site #4 bootstrap method
    at okhttp3.internal.Util.<clinit>(Util.java:87)
    at okhttp3.internal.Util.immutableList(Util.java:234)
    at okhttp3.OkHttpClient.<clinit>(OkHttpClient.java:124)
    at okhttp3.OkHttpClient$Builder.<init>(OkHttpClient.java:449)
    at com.google.maps.OkHttpRequestHandler$Builder.<init>(OkHttpRequestHandler.java:106)
    at com.google.maps.GeoApiContext$Builder.<init>(GeoApiContext.java:318)
    at com.example.anchor404.DockFinderActivity.calculateDirections(DockFinderActivity.java:497)
    at com.example.anchor404.DockFinderActivity.access$900(DockFinderActivity.java:65)
    at com.example.anchor404.DockFinderActivity$8.onClick(DockFinderActivity.java:473)
    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:172)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 Caused by: java.lang.ClassCastException: Bootstrap method returned null
    at okhttp3.internal.Util.<clinit>(Util.java:87) 
    at okhttp3.internal.Util.immutableList(Util.java:234) 
    at okhttp3.OkHttpClient.<clinit>(OkHttpClient.java:124) 
    at okhttp3.OkHttpClient$Builder.<init>(OkHttpClient.java:449) 
    at com.google.maps.OkHttpRequestHandler$Builder.<init>(OkHttpRequestHandler.java:106) 
    at com.google.maps.GeoApiContext$Builder.<init>(GeoApiContext.java:318) 
    at com.example.anchor404.DockFinderActivity.calculateDirections(DockFinderActivity.java:497) 
    at com.example.anchor404.DockFinderActivity.access$900(DockFinderActivity.java:65) 
    at com.example.anchor404.DockFinderActivity$8.onClick(DockFinderActivity.java:473) 
    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:172) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:6669) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
   I/Process: Sending signal. PID: 21685 SIG: 9
   Process 21685 terminated.

私はこのようにgeoApiContextを呼び出しています:

if(mGeoApiContext == null){
        mGeoApiContext = new GeoApiContext.Builder()
                .apiKey(getString(R.string.google_map_api_key))
                .build();
    }

mGeoApiContextはグローバルです。

private GeoApiContext mGeoApiContext = null;

私のグラドルの中:

// Google Maps Services (needed for directions)
implementation 'com.google.maps:google-maps-services:0.10.1'
implementation 'org.slf4j:slf4j-simple:1.7.25'

私のマニフェストには次の権限があります。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

許可がありませんか?GeoApiContextの呼び出しは間違っていますか、それともAPIキーの問題ですか?

エヴァン:

コードをテストしたときに同じエラーに遭遇したため、多くの調査の結果、この問題が見つかりましたソース互換性とターゲット互換性の両方を1.8(Java 8)に設定する必要があります。

build.gradle

android {
    compileOptions {
        targetCompatibility = 1.8
        sourceCompatibility = 1.8
    }
}

または、Android Studioを使用している場合は、にアクセスしてくださいFile > Project Structure > Modules > Properties tab

上記の変更を行った後GeoApiContext、Androidアプリで問題なく使用できるようになったので、これもお役に立てば幸いです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事