Android Studio 无法解决 com.google.android.gms.location.places.AutocompleteFilter。

23

我正在尝试按照这篇文章实现自动完成地点搜索。

http://www.truiton.com/2015/04/android-places-api-autocomplete-getplacebyid/

我已经按照所有步骤操作,并且在我的 build.gradle 文件中添加了正确的依赖项。

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:6.5.87'
}

这里也有我的清单文件中的元数据部分。

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/google_maps_key" />

我已安装了所有必需的 SDK 组件,但是我的 Android Studio 仍然无法解析以下导入中的places 部分:

import com.google.android.gms.location.places.AutocompleteFilter;
import com.google.android.gms.location.places.AutocompletePrediction;
import com.google.android.gms.location.places.AutocompletePredictionBuffer;
import com.google.android.gms.location.places.Places;

他们看起来很迷茫,因为找不到“地点”部分。

enter image description here

我该如何解决这个问题?我的应用程序使用SDK 19。

9个回答

49

在模块的build.gradle文件的dependencies中添加compile 'com.google.android.gms:play-services-places:<version>,其中<version>可能至少为:9.2.1


9
谢谢!这对于新版本的Play服务来说是必须的,因为Google Places API不再包含在位置包中。 - petrusgomes
2
这应该是新接受的答案。Places API不再在Location上了! - Sjd
是的,这对我有帮助。其他答案没有解决我的问题。 - geeky_monster
ary behtreen dedia lrky - nafees ahmed

26

在play-services 9.2.0中,places API不再位于location中,而是移到了它们自己的places依赖项中。如果要解决这些问题,您应该将以下内容添加到build.gradle文件中。


compile 'com.google.android.gms:play-services-places:9.2.0'

查看

Android Play服务9.2.0中已经移除了Places类。


14

Places API 是在 Google Play services 7.0 中才加入的:你需要更新依赖版本至至少 7.0.0,但截至本回答最新版本为 15.0.0

几乎所有情况下,你应该使用分离的 APIs,只包含你所需的 Google Play services 的部分。在此情况下,你实际上会使用像下面这样的依赖:

implementation 'com.google.android.gms:play-services-location:15.0.0'

我的问题是,尽管建议不要混合使用playservice版本,但我仍然无法解决PlacesAutocomplete组件与最新版本的Google Play服务(8.3.0)的兼容性问题。我需要一些帮助@ianhanniballake。 - Akah
@larrytech - 我建议您查看 连接到 Places API 指南自动完成指南,然后使用您的代码并说明您在添加自动完成方面遇到的问题,向其他问题提问。 - ianhanniballake
1
我正在尝试使用这段代码创建一个意图,以调用placeautomplete操作。Intent interestintent =new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) .build(this); 但是,由于PlaceAutocomplete类无法解析,所以这并不起作用。就像我说的,我正在使用playservices版本8.3.0的最新版本,并且这段代码来自“连接到地点API指南”。 - Akah
@larrytech 我也遇到了同样的问题,我的play-services:8.3.0无法解析com.google.android.gms.location.places.ui.PlaceAutocomplete,我该怎么解决呢? - Saeed Hashemi
@SaeedHashemi-请务必查阅最新的Places自动完成开发人员指南-事情已经有所改变。 - ianhanniballake
显示剩余2条评论

8
自从Play Services版本9.2之后,我们需要添加以下依赖项才能访问Google Places API。
 compile 'com.google.android.gms:play-services-places:11.0.2'

此刻的最新版本为本文所述版本。
此问题的被采纳答案已过时。

7
请在您的build.gradle(Module: app)中添加以下两个依赖项:
implementation  'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-places:15.0.1'

5
尝试包含以下内容: 编译 'com.google.android.gms:play-services-places:10.2.0'

0

compile 'com.google.android.gms:play-services-location:7.5.0'

只需在您的依赖项中添加此代码(build.gradle [Module:Application]),然后进行以下操作:文件->无效缓存/重启->无效和重启


0

最近我也遇到了同样的问题,尝试添加以下内容:

implementation 'com.google.android.gms:play-services-places:11.4.0'

build.gradle(app)文件中添加我的依赖项对我解决了这个问题。

注意:确保您的依赖项版本都相同,否则您可能会遇到错误。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接