Java 谷歌地图应用程序-运行应用程序时出错
我目前正在开发一个应用程序,它可以获取用户的位置,并允许用户使用PlacesAPI查看附近的位置。每当我尝试运行代码时,都会出现多个错误,这些错误会追溯到我的主MapActivity类中的一个错误,错误的外观如下:Java 谷歌地图应用程序-运行应用程序时出错,java,android,google-maps,google-places-api,Java,Android,Google Maps,Google Places Api,我目前正在开发一个应用程序,它可以获取用户的位置,并允许用户使用PlacesAPI查看附近的位置。每当我尝试运行代码时,都会出现多个错误,这些错误会追溯到我的主MapActivity类中的一个错误,错误的外观如下: at projektapplikation.MapsActivity.onCreate(MapsActivity.java:60) 获取错误的方法称为OnCreate,如下所示: @Override protected void onCreate(Bundle saved
at projektapplikation.MapsActivity.onCreate(MapsActivity.java:60)
获取错误的方法称为OnCreate,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
//Init Service
mServiceType = Common.getGoogleAPIServiceType();
//Request Runtime Permission
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
checkLocationPermission();
}
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_hospital:
nearByPlace("Sjukhus");
break;
case R.id.action_market:
nearByPlace("Shopping");
break;
case R.id.action_retaurant:
nearByPlace("Resturang");
break;
case R.id.action_school:
nearByPlace("Skola");
break;
default:
break;
}
return true;
}
});
}
这就是我的gradle的样子:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "se.hig.p18wisa02.projektapplikation"
minSdkVersion 26
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
repositories
{
jcenter()
google()
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
allprojects {
repositories {
google()
jcenter()
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.squareup.retrofit2:retrofit:2.7.1'
implementation 'com.squareup.retrofit2:converter-gson:2.7.1'
implementation 'androidx.appcompat:appcompat:1.0.2'
compile 'com.android.support:design:28.0.0'
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services:16.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
这些都是我的错误:
2020-01-12 18:37:08.508 26780-26780/se.hig.p18wisa02.projektapplikation E/jektapplikatio: The String#value field is not present on Android versions >= 6.0
2020-01-12 18:37:08.806 26780-26780/se.hig.p18wisa02.projektapplikation D/AndroidRuntime: Shutting down VM
2020-01-12 18:37:08.807 26780-26780/se.hig.p18wisa02.projektapplikation E/AndroidRuntime: FATAL EXCEPTION: main
Process: se.hig.p18wisa02.projektapplikation, PID: 26780
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 se.hig.p18wisa02.projektapplikation.Remote.RetrofitClient.getClient(RetrofitClient.java:10)
at se.hig.p18wisa02.projektapplikation.Common.getGoogleAPIServiceType(Common.java:12)
at se.hig.p18wisa02.projektapplikation.MapsActivity.onCreate(MapsActivity.java:67)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
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.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 se.hig.p18wisa02.projektapplikation.Remote.RetrofitClient.getClient(RetrofitClient.java:10)
at se.hig.p18wisa02.projektapplikation.Common.getGoogleAPIServiceType(Common.java:12)
at se.hig.p18wisa02.projektapplikation.MapsActivity.onCreate(MapsActivity.java:67)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
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)
2020-01-12 18:37:08.508 26780-26780/se.hig.p18wisa02.projektapplikation E/jektapplikatio:String#value字段在Android版本>=6.0中不存在
2020-01-12 18:37:08.806 26780-26780/se.hig.p18wisa02.projektapplication D/AndroidRuntime:关闭虚拟机
2020-01-12 18:37:08.807 26780-26780/se.hig.p18wisa02.projektapplication E/AndroidRuntime:致命异常:main
工艺:se.hig.p18wisa02.PROJEKTAPPLICATION,PID:26780
java.lang.BootstrapMethodError:调用站点的异常#4引导方法
位于okhttp3.internal.Util.(Util.java:87)
在okhttp3.internal.Util.skieducingsciiwhitespace(Util.java:321)
位于okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1313)
位于okhttp3.HttpUrl.get(HttpUrl.java:917)
在reformation2.reformation$Builder.baseUrl(reformation.java:492)
位于se.hig.p18wisa02.projektapplikation.Remote.RefughtClient.getClient(RefughtClient.java:10)
位于se.hig.p18wisa02.projektapplication.Common.getGoogleAppIserviceType(Common.java:12)
位于se.hig.p18wisa02.projektapplication.MapsActivity.onCreate(MapsActivity.java:67)
位于android.app.Activity.performCreate(Activity.java:7136)
位于android.app.Activity.performCreate(Activity.java:7127)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:193)
位于android.app.ActivityThread.main(ActivityThread.java:6669)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
原因:java.lang.ClassCastException:引导方法返回null
位于okhttp3.internal.Util.(Util.java:87)
在okhttp3.internal.Util.skieducingsciiwhitespace(Util.java:321)
位于okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1313)
位于okhttp3.HttpUrl.get(HttpUrl.java:917)
在reformation2.reformation$Builder.baseUrl(reformation.java:492)
位于se.hig.p18wisa02.projektapplikation.Remote.RefughtClient.getClient(RefughtClient.java:10)
位于se.hig.p18wisa02.projektapplication.Common.getGoogleAppIserviceType(Common.java:12)
位于se.hig.p18wisa02.projektapplication.MapsActivity.onCreate(MapsActivity.java:67)
位于android.app.Activity.performCreate(Activity.java:7136)
位于android.app.Activity.performCreate(Activity.java:7127)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:193)
位于android.app.ActivityThread.main(ActivityThread.java:6669)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
我不知道需要修改什么才能让它正常工作,因此我非常感谢您的帮助。最新发布的
com.google.android.gms:play services
版本是12.0.1
,所以请修改
implementation 'com.google.android.gms:play-services:16.0.0'
到
还请注意,在使用AndroidX时,不应使用旧版支持存储库。所以不是
compile'com.android.support:design:28.0.0'
使用
compile'com.android.support:design:28.0.0'
implementation 'com.google.android.material:material:1.0.0'