Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GeoAPIContext崩溃_Java_Android_Google Maps - Fatal编程技术网

Java GeoAPIContext崩溃

Java GeoAPIContext崩溃,java,android,google-maps,Java,Android,Google Maps,我是android编程新手。我正在创建一个项目,需要计算两个地理点之间的路线。我的点和谷歌地图都正确,但当我调用GeoApiContext时,我的程序崩溃了。这就是错误: D/DockFinderActivity: calculateDirections: calculating directions. D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: com.anchor.de

我是android编程新手。我正在创建一个项目,需要计算两个地理点之间的路线。我的点和谷歌地图都正确,但当我调用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.
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(Java8)

格雷德尔先生

android {
    compileOptions {
        targetCompatibility = 1.8
        sourceCompatibility = 1.8
    }
}
或者,如果您使用Android Studio,请转到
文件>项目结构>模块>属性选项卡


在做了上述更改后,我能够在我的Android应用程序中毫无问题地使用
GeoApiContext
,所以我希望这也能帮助你

我不知道这是否有任何帮助,但我刚刚和谷歌的人谈过,他们说,
GeoApiContext
不能直接在android手机上使用,因为如果你试图限制密钥并将其限制在你的应用程序中,它将不起作用,你将无法获得授权,如果没有限制,您可能会遇到密钥被滥用的风险,因此api将主要由web服务使用


无论如何,它可能会在将来发生变化,所以请标记我的发布日期

你能发布整个堆栈跟踪吗?@Dinesh我刚刚编辑了这个问题,如果这不是你所说的完整堆栈跟踪,请解释更多。你使用什么API键来进行地理编码?它是否与加载Android地图时使用的相同,如果是,它是否受Android限制?请注意,在使用地理编码web服务时,需要使用不同的API键。看见
android {
    compileOptions {
        targetCompatibility = 1.8
        sourceCompatibility = 1.8
    }
}