我有一个非常奇怪的问题。 PlaceAutoComplete在我的调试apk中工作正常。但是现在在我签名的apk中,自动完成片段会显示,但是如果我输入任何内容,它只会返回上一个屏幕而不做任何事情。以下是我的MainActivity的片段:
try {
Intent intent =
new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN)
.build(MainActivity.this);
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_START);
}catch(GooglePlayServicesRepairableException e){
// TODO: Handle the error.
Toast.makeText(MainActivity.this, "Error in GooglePlayServicesRepairable", Toast.LENGTH_LONG).show();
}catch(GooglePlayServicesNotAvailableException e){
Toast.makeText(MainActivity.this, "Error in PlayServiesNotAvbl", Toast.LENGTH_LONG).show();
// TODO: Handle the error.
}
顺便说一下,Toast的消息都没有,所以我不确定问题是否存在。
我的AndroidManifest文件如下所示,用于权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
(不确定是否需要ACCESS_NETWORK_STATE和READ_GSERVICES。我在StackOverflow上阅读之后添加了这两个,它解决了一些用户问题
这真让我疯了。有没有我需要添加到我的制作apk的库?大小似乎比调试的大约少1 MB ....
提前致谢
请注意,API密钥很好,因为在调试模式下可以正常工作
答案 0 :(得分:1)
问题是两件事的结合 -
1)发布密钥无法在评论中提及 - https://developers.google.com/places/android-api/signup#release-cert - 但是,我只是想补充一点,您不需要为PROD提供不同的API密钥,但可以添加您签名的指纹到现有API(请参阅链接)
和
2)我必须将API密钥添加到release / google_maps_api.xml中,如此答案所述 - https://stackoverflow.com/a/30559898/5662769
希望这也有助于其他人
感谢所有帮助过的人