[英]How to show vets near user location
我如何顯示用戶位置附近的獸醫和寵物店我使用的 api 來自 google_maps 活動也許這可能是我只想指出的問題。 這是我嘗試過的,但應用程序在 logchat 中崩潰了,它顯示兩行
public class Harita extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
private ActivityHaritaBinding binding;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_harita);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
**PlacesSearchResult[] placesSearchResults = new NearbySearch().run().results;
Log.e("response1Tag", placesSearchResults[0].toString());
Log.e("response2Tag", placesSearchResults[1].toString());
double lat1 = placesSearchResults[0].geometry.location.lat;
double lng1 = placesSearchResults[0].geometry.location.lng;
double lat2 = placesSearchResults[1].geometry.location.lat;
double lng2 = placesSearchResults[1].geometry.location.lng;
mMap.addMarker(new MarkerOptions().position(new LatLng(lat1, lng1)));
mMap.addMarker(new MarkerOptions().position(new LatLng(lat2, lng2)));
mMap.setMinZoomPreference(14.0f);
mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat1, lng1)));
}
}
public class NearbySearch {
public PlacesSearchResponse run(){
PlacesSearchResponse request = new PlacesSearchResponse();
GeoApiContext context = new GeoApiContext.Builder()
.apiKey("MY_APİ")
**.build();
LatLng location = new LatLng(-33.8670522, 151.1957362);
try {
request = PlacesApi.nearbySearchQuery(context, location)
.radius(5000)
.rankby(RankBy.PROMINENCE)
.keyword("cruise")
.language("en")
.type(PlaceType.VETERINARY_CARE)
.await();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
} finally {
return request;
}
}
這是錯誤日志
2021-07-24 21:05:38.747 8645-8645/com.sahin.evcilhayvanrehberi E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.sahin.evcilhayvanrehberi, PID: 8645
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sahin.evcilhayvanrehberi/com.sahin.evcilhayvanrehberi.Harita}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
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: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class fragment
Caused by: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml
at com.google.maps.api.android.lib6.drd.p.a(:com.google.android.gms.dynamite_mapsdynamite@212418068@21.24.18 (100700-0):6)
at com.google.maps.api.android.lib6.auth.f.i(:com.google.android.gms.dynamite_mapsdynamite@212418068@21.24.18 (100700-0):1)
at com.google.android.gms.maps.internal.CreatorImpl.b(:com.google.android.gms.dynamite_mapsdynamite@212418068@21.24.18 (100700-0):30)
at com.google.android.gms.maps.internal.CreatorImpl.newMapFragmentDelegate(:com.google.android.gms.dynamite_mapsdynamite@212418068@21.24.18 (100700-0):2)
at com.google.android.gms.maps.internal.g.aX(:com.google.android.gms.dynamite_mapsdynamite@212418068@21.24.18 (100700-0):22)
at dx.onTransact(:com.google.android.gms.dynamite_mapsdynamite@212418068@21.24.18 (100700-0):4)
at android.os.Binder.transact(Binder.java:667)
at com.google.android.gms.internal.maps.zza.zzH(com.google.android.gms:play-services-maps@@17.0.1:2)
at com.google.android.gms.maps.internal.zze.zzd(com.google.android.gms:play-services-maps@@17.0.1:3)
at com.google.android.gms.maps.zzav.zza(com.google.android.gms:play-services-maps@@17.0.1:4)
at com.google.android.gms.maps.zzav.createDelegate(com.google.android.gms:play-services-maps@@17.0.1:1)
at com.google.android.gms.dynamic.DeferredLifecycleHelper.zaa(com.google.android.gms:play-services-base@@17.5.0:18)
at com.google.android.gms.dynamic.DeferredLifecycleHelper.onInflate(com.google.android.gms:play-services-base@@17.5.0:20)
at com.google.android.gms.maps.SupportMapFragment.onInflate(com.google.android.gms:play-services-maps@@17.0.1:9)
at androidx.fragment.app.Fragment.onInflate(Fragment.java:1731)
at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:103)
at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:135)
at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:319)
at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:298)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
2021-07-24 21:05:38.748 8645-8645/com.sahin.evcilhayvanrehberi E/AndroidRuntime: at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:420)
at android.app.Activity.setContentView(Activity.java:2771)
at androidx.activity.ComponentActivity.setContentView(ComponentActivity.java:380)
at com.sahin.evcilhayvanrehberi.Harita.onCreate(Harita.java:39)
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.IllegalStateException: Expected Android API level 21+ but was 30
okhttp3
可能不支持 SDK INT 30。你可以降級到 SDK INT 28 試試。
但是,對於當前情況,添加對 OkHttp 最新版本的顯式依賴,無論是最新版本,現在都存在。 這應該可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.