Google 地图地点自动完成功能不起作用
Google Map places autocomplete doesn't work
我想实现 AutocompleteFragment(google 处),但是当我单击以在片段中搜索视图时,片段消失了(掉了下来)。
Google 地图和地点 API 工作,在控制台中我看到错误:
places.PlacesService.AutocompleteWidget: 100
我找不到它的意思。
我尝试在 and this 答案中使用建议,但没有用。
我的 build.gradle 实现:
implementation 'com.google.android.gms:play-services:+'
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services-places:+'
implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.android.gms:play-services-places:16.0.0'
Android.manifest 中的权限和元数据:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="it.mappe.permission.MAPS_RECEIVE" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="there_is_my_api_key"/>
在 activity 布局中我有这个 XML:
SupportMapFragment mapFragment;
SupportPlaceAutocompleteFragment autocompleteFragment;
GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
}
@Override
protected void onStart() {
super.onStart();
createMapView();
}
private void createMapView() {
getSupportFragmentManager().executePendingTransactions();
mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapView);
mapFragment.getMapAsync(this);
autocompleteFragment = (SupportPlaceAutocompleteFragment) getSupportFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
.setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES)
.build();
autocompleteFragment.setFilter(typeFilter);
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(com.google.android.gms.location.places.Place place) {
Log.i(TAG, "Place: " + place.getName());
}
@Override
public void onError(Status status) {
Log.e(TAG, "An error occurred: " + status + ", status code " + status.getStatusCode());
}
});
}
当我点击片段中的搜索视图时,我在 LogCat 中看到了这个:
An error occurred: Status{statusCode=ERROR, resolution=null}, status code 13
和this page给我一个很好的解释 "status code 13":
The operation failed with no more detailed information.
感谢任何建议
从Google console获取googleAPI键并添加元数据
它看起来像:AIsddsfdsf-FAdsdsf6755fgfgdd3w
Official Guide如何生成MapAPIKey
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="there_is_my_api_key"/>
我遇到了同样的错误 "error 13",我在 Whosebug 中问了这个问题。
虽然我没有得到任何答复,但我收到了 Google 地图工作人员的评论。他说这是谷歌方面的错误
这是 link 我的问题
我在寻找答案试试看:
api 密钥库应包含用于 android、网络和地图的位置 api
应该有 multidex 支持
我想实现 AutocompleteFragment(google 处),但是当我单击以在片段中搜索视图时,片段消失了(掉了下来)。 Google 地图和地点 API 工作,在控制台中我看到错误:
places.PlacesService.AutocompleteWidget: 100
我找不到它的意思。
我尝试在
我的 build.gradle 实现:
implementation 'com.google.android.gms:play-services:+'
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services-places:+'
implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.android.gms:play-services-places:16.0.0'
Android.manifest 中的权限和元数据:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="it.mappe.permission.MAPS_RECEIVE" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="there_is_my_api_key"/>
在 activity 布局中我有这个 XML:
SupportMapFragment mapFragment;
SupportPlaceAutocompleteFragment autocompleteFragment;
GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
}
@Override
protected void onStart() {
super.onStart();
createMapView();
}
private void createMapView() {
getSupportFragmentManager().executePendingTransactions();
mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapView);
mapFragment.getMapAsync(this);
autocompleteFragment = (SupportPlaceAutocompleteFragment) getSupportFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
.setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES)
.build();
autocompleteFragment.setFilter(typeFilter);
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(com.google.android.gms.location.places.Place place) {
Log.i(TAG, "Place: " + place.getName());
}
@Override
public void onError(Status status) {
Log.e(TAG, "An error occurred: " + status + ", status code " + status.getStatusCode());
}
});
}
当我点击片段中的搜索视图时,我在 LogCat 中看到了这个:
An error occurred: Status{statusCode=ERROR, resolution=null}, status code 13
和this page给我一个很好的解释 "status code 13":
The operation failed with no more detailed information.
感谢任何建议
从Google console获取googleAPI键并添加元数据
它看起来像:AIsddsfdsf-FAdsdsf6755fgfgdd3w
Official Guide如何生成MapAPIKey
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="there_is_my_api_key"/>
我遇到了同样的错误 "error 13",我在 Whosebug 中问了这个问题。
虽然我没有得到任何答复,但我收到了 Google 地图工作人员的评论。他说这是谷歌方面的错误
这是 link 我的问题
我在寻找答案试试看:
api 密钥库应包含用于 android、网络和地图的位置 api 应该有 multidex 支持