Android PlacePicker在启动后2秒关闭

Android PlacePicker在启动后2秒关闭,android,google-maps,android-intent,google-places-api,startactivityforresult,Android,Google Maps,Android Intent,Google Places Api,Startactivityforresult,不幸的是,我当时找不到答案。对我来说,PlacePicker启动,将位置显示为未知,然后返回结果代码2 重申一些事实:到目前为止,我的应用程序有两个活动。第一个活动是一张地图,到目前为止效果很好;没问题。第二个活动有一个按钮,允许用户启动PlacePicker。第一个活动毫无问题地启动地图这一事实应该向读者强调,我的清单很好,我的Google Api控制台拥有正确的数据。这让我想到:我做错了什么?我使用的正是这个例子。事实上,这是我的代码 try { IntentBuilder builde

不幸的是,我当时找不到答案。对我来说,PlacePicker启动,将位置显示为未知,然后返回结果代码2

重申一些事实:到目前为止,我的应用程序有两个活动。第一个活动是一张地图,到目前为止效果很好;没问题。第二个活动有一个按钮,允许用户启动PlacePicker。第一个活动毫无问题地启动地图这一事实应该向读者强调,我的清单很好,我的Google Api控制台拥有正确的数据。这让我想到:我做错了什么?我使用的正是这个例子。事实上,这是我的代码

try {
  IntentBuilder builder = new IntentBuilder();
  startActivityForResult(builder.build(this), REQUEST_PLACE_PICKER);
} catch (GooglePlayServicesRepairableException e) {
  e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
  e.printStackTrace();
}
然后

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (RESULT_OK != resultCode) {
        Log.d(TAG,"bad result: "+resultCode);
        return;
    }
    if (REQUEST_PLACE_PICKER == requestCode) {
        Place place = PlacePicker.getPlace(data, this);
        String toastMsg = String.format("Place: %s", place.getName());
        Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
    }
}
这是我的完整日志

 D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
 W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection
 D/SRIB_DCS: log_dcs ThreadedRenderer::initialize entered! 
 D/AddLocationActivity: bad result: 2

请确保您已将sha-1密钥添加到google api控制台

如何获取SHA-1指纹: 理想情况下,您可以将调试密钥SHA-1和发布密钥SHA-1添加到控制台,以便这两个密钥都可以使用api。

您应该完成本页所述的步骤,并确保没有跳过任何内容:

我通过登录我的Google开发者控制台解决了这个问题。然后转到Api>仪表板,然后单击启用Api和服务


检查应用程序的API仪表板。如果您没有看到“PlacesSDK for Android”API的API点击率,则可能该API未启用。如果您看到此API被命中,请检查错误。如果您看到403个错误,可能是因为您使用了1)错误的Android密钥或2)错误的应用程序限制或3)错误的API限制或这些限制的组合。

面临同样的问题。你找到解决办法了吗?