Google PlacePicker 在启动后立即关闭
Google PlacePicker Closes Immediately After Launch
我正在开发一个 Android 应用程序,并且正在研究 Google 应用程序中某些功能的位置。 Google 最近发布了我正在使用的 PlacePicker 功能。我已遵循 Google 指南和 "T" 的快速入门指南。三个小时前,该功能运行良好,现在当我去测试它时,它启动并立即关闭,堆栈跟踪中没有抛出任何错误。这是我使用代码的方式:
这是在片段中。
// The Location Selection from Google Place Picker
where.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
launchPlace();
} catch (GooglePlayServicesNotAvailableException | GooglePlayServicesRepairableException e) {
e.printStackTrace();
}
}
});
这是在片段 onCreateView 中。
launchPlace()方法定义如下。
// Start Google Place Picker Code **************************************************************
public void launchPlace() throws GooglePlayServicesNotAvailableException,
GooglePlayServicesRepairableException {
PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
Context context = getActivity().getApplicationContext();
startActivityForResult(builder.build(context), PLACE_PICKER_REQUEST);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
String badLocation = "That location is not valid for this app, please select a valid location";
if (requestCode == PLACE_PICKER_REQUEST) {
if (resultCode == Activity.RESULT_OK) {
place = PlacePicker.getPlace(data, getActivity().getApplicationContext());
if (place.getPlaceTypes().contains(34)) {
if (place.getPlaceTypes().contains(9) || place.getPlaceTypes().contains(15) ||
place.getPlaceTypes().contains(38) ||
place.getPlaceTypes().contains(67) ||
place.getPlaceTypes().contains(79)) {
where.setText(place.getName());
loc = true;
} else {
Toast.makeText(getActivity().getApplicationContext(),
badLocation, Toast.LENGTH_LONG).show();
try {
launchPlace();
} catch (GooglePlayServicesNotAvailableException | GooglePlayServicesRepairableException e) {
e.printStackTrace();
}
}
}
}
}
}
此代码之前(3 小时前)有效,现在无效。 LogCat 是这样说的:(Android Studio)
04-21 15:48:02.320 5045-5045/com.siliconmindtech.trofi D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN
04-21 15:48:02.680 5045-5124/com.siliconmindtech.trofi D/OpenGLRenderer﹕ endAllStagingAnimators on 0xa1a55600 (InsetDrawable) with handle 0xa185dff0
04-21 15:48:05.000 5045-5121/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isSBSettingEnabled false
04-21 15:48:05.060 5045-5045/com.siliconmindtech.trofi I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@215c768a time:9757022
如果有人知道解决这个问题的方法,那会很棒,我知道 Google PlacePicker 很新,但我是新手 Android 开发人员,感觉有人有更好的方法理解比我。任何和所有帮助将不胜感激。如果需要更多信息,请告诉我。我们使用 GitHub 所以我一直回到它曾经工作的时候,但没有任何改变,它仍然关闭(选择器,而不是应用程序)。我在开发人员控制台中为 Android 启用了 Google Places API 和 Google Places API,但也没有帮助。它到达 "Updating your location" 屏幕然后停止。
编辑:这是整个 LogCat,从启动(在三星 Galaxy S5 上)到 PlacePicker 启动(该操作之前的一次导航)然后关闭并返回到应用程序。这是你的意思吗?
04-21 16:56:26.740 27318-27318/com.siliconmindtech.trofi D/ResourcesManager﹕ creating new AssetManager and set to /data/app/com.siliconmindtech.trofi-1/base.apk
04-21 16:56:26.910 27318-27318/com.siliconmindtech.trofi D/AbsListView﹕ Get MotionRecognitionManager
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isSBSettingEnabled false
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isShipBuild true
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Thread-13137-1066627414: SmartBonding Enabling is false, SHIP_BUILD is true, log to file is false, DBG is false
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isSBSettingEnabled false
04-21 16:56:26.910 27318-27318/com.siliconmindtech.trofi D/AbsListView﹕ Get MotionRecognitionManager
04-21 16:56:26.940 27318-27318/com.siliconmindtech.trofi D/Activity﹕ performCreate Call secproduct feature valuefalse
04-21 16:56:26.940 27318-27318/com.siliconmindtech.trofi D/Activity﹕ performCreate Call debug elastic valuetrue
04-21 16:56:26.950 27318-27318/com.siliconmindtech.trofi D/AbsListView﹕ Get MotionRecognitionManager
04-21 16:56:26.970 27318-27350/com.siliconmindtech.trofi D/OpenGLRenderer﹕ Render dirty regions requested: true
04-21 16:56:27.030 27318-27350/com.siliconmindtech.trofi I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: ()
OpenGL ES Shader Compiler Version: E031.25.01.03
Build Date: 10/28/14 Tue
Local Branch: LA.BF.1.1_RB1_20141028_021_patches2
Remote Branch:
Local Patches:
Reconstruct Branch:
04-21 16:56:27.030 27318-27350/com.siliconmindtech.trofi I/OpenGLRenderer﹕ Initialized EGL, version 1.4
04-21 16:56:27.050 27318-27350/com.siliconmindtech.trofi I/OpenGLRenderer﹕ HWUI protection enabled for context , &this =0xa23090d8 ,&mEglDisplay = 1 , &mEglConfig = 8
04-21 16:56:27.050 27318-27350/com.siliconmindtech.trofi D/OpenGLRenderer﹕ Enabling debug mode 0
04-21 16:56:27.050 27318-27340/com.siliconmindtech.trofi I/System.out﹕ KnoxVpnUidStorageknoxVpnSupported API value returned is false
04-21 16:56:27.240 27318-27350/com.siliconmindtech.trofi V/RenderScript﹕ Application requested CPU execution
04-21 16:56:27.260 27318-27350/com.siliconmindtech.trofi V/RenderScript﹕ 0xa2377a00 Launching thread(s), CPUs 4
04-21 16:56:27.310 27318-27318/com.siliconmindtech.trofi I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@344b9848 time:13859270
04-21 16:56:29.700 27318-27318/com.siliconmindtech.trofi D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN
04-21 16:56:31.850 27318-27318/com.siliconmindtech.trofi D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN
04-21 16:56:31.970 27318-27318/com.siliconmindtech.trofi I/Places﹕ Got here!
04-21 16:56:32.300 27318-27350/com.siliconmindtech.trofi D/OpenGLRenderer﹕ endAllStagingAnimators on 0xa196d600 (InsetDrawable) with handle 0xaf7fc350
04-21 16:56:32.740 27318-27318/com.siliconmindtech.trofi I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@344b9848 time:13864703
上面的LogCat是冗长的。
解决方法:别像我一样是新手,我忘了把我的GoogleAPI键添加到我的android_manifest.xml...我很抱歉。
只需在 Google 开发者控制台中为 Android 启用 Google Places API。
不要忘记在 AndroidManifest
:
指定您的 API 密钥
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="ADD_YOUR_API_KEY_HERE" />
我相信当 Google 在 2015 年 4 月 20 日更改他们的 API 时,他们修改了 PlacePicker 固有使用的地方 API。对我有用的解决方案如下:
- 转到您的 Google 开发者控制台 (https://console.developers.google.com/project)
- 如果您已经创建了一个项目,请导航至您的项目。如果不去这里:https://developers.google.com/console/help/
- 导航至 "APIs & auth",然后导航至控制台左侧的 "Credentials"。我没有足够的代表 post 一张图片作为指导...
- 创建一个新密钥,它出现在您的凭据 window 中的 Public API 访问权限下。您将需要您的 SHA1 指纹来接收密钥。我使用的方向在这里:How to get the SHA-1 fingerprint certificate in Android Studio for debug mode?
- 您输入 SHA1 指纹的位置应采用以下格式:
(您的密钥,20 个以“:”分隔的十六进制值);com.yourpackage.yourapp
- 复制生成的 API 密钥。您需要以上述相同格式添加每个开发者的指纹,以便其他开发者使用。
- 将您的密钥添加到您的 AndroidManifest.xml
<application ...
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_api_key" />
... </application>
其中“@string/google_api_key”/> 是您刚刚生成的密钥。将它放在你的 strings.xml 文件中:
<string name="google_api_key">yourkeyhere</string>
- 清理并重建您的项目。现在应该工作了。我不认为我遗漏了任何步骤...如果有请发表评论。
我有同样的问题。我添加 Google 映射键
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key"/>` in manifest file.
地点选择器立即关闭。然后,我还添加
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_api_key" />
Place Picker 显示,但是当我打开地图时,我的应用程序被强行关闭,并记录如下。
RuntimeException: The API key can only be specified once. It is recommended that you use the meta-data tag with the name: com.google.android.maps.v2.API_KEY in the <application> element of AndroidManifest.xml
at com.google.maps.api.android.lib6.d.fb.a(Unknown Source)
at com.google.maps.api.android.lib6.a.g.a(Unknown Source)
at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source)
at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source)
at com.google.android.gms.maps.internal.i.onTransact(SourceFile:62)
at android.os.Binder.transact(Binder.java:364)
at com.google.android.gms.maps.internal.zzc$zza$zza.zzj(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$zzb.zzqs(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$zzb.zza(Unknown Source)
at com.google.android.gms.dynamic.zza.zza(Unknown Source)
at com.google.android.gms.dynamic.zza.onCreate(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onCreate(Unknown Source)
at android.support.v4.app.Fragment.performCreate(Fragment.java:1763)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:915)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
at android.support.v4.app.FragmentManagerImpl.run(FragmentManager.java:456)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at dalvik.system.NativeStart.main(Native Method)
我尝试删除
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key"/>`
但保持
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_api_key" />
它现在运行良好,我不知道为什么。
在 mainfeast 中替换您的元数据标签..它对我有用..
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR ANDROID KEY" />
和
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR ANDROID KEY" />
祝你好运
我修复这个错误的方法是在获取 API 密钥时(在 Google 开发者页面上),在您输入包名称的位置输入完整的包名称。这在您的 android 清单中可用!
我在使用 Places API 时遇到了同样的问题。最后,我发现有不同的 Google 地方 API,尤其是 Android。因此,我使用的 API-Key 仅适用于非 Android 版本。
使用此 link 生成您的密钥:
https://developers.google.com/places/android-api/signup
在我的例子中,转到 Google 控制台,然后为 Android Google 地方启用 API,然后转到 Manifest.xml 并将此代码放在
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
并且不要忘记输入 Google API 键
我正在开发一个 Android 应用程序,并且正在研究 Google 应用程序中某些功能的位置。 Google 最近发布了我正在使用的 PlacePicker 功能。我已遵循 Google 指南和 "T" 的快速入门指南。三个小时前,该功能运行良好,现在当我去测试它时,它启动并立即关闭,堆栈跟踪中没有抛出任何错误。这是我使用代码的方式:
这是在片段中。
// The Location Selection from Google Place Picker
where.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
launchPlace();
} catch (GooglePlayServicesNotAvailableException | GooglePlayServicesRepairableException e) {
e.printStackTrace();
}
}
});
这是在片段 onCreateView 中。
launchPlace()方法定义如下。
// Start Google Place Picker Code **************************************************************
public void launchPlace() throws GooglePlayServicesNotAvailableException,
GooglePlayServicesRepairableException {
PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
Context context = getActivity().getApplicationContext();
startActivityForResult(builder.build(context), PLACE_PICKER_REQUEST);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
String badLocation = "That location is not valid for this app, please select a valid location";
if (requestCode == PLACE_PICKER_REQUEST) {
if (resultCode == Activity.RESULT_OK) {
place = PlacePicker.getPlace(data, getActivity().getApplicationContext());
if (place.getPlaceTypes().contains(34)) {
if (place.getPlaceTypes().contains(9) || place.getPlaceTypes().contains(15) ||
place.getPlaceTypes().contains(38) ||
place.getPlaceTypes().contains(67) ||
place.getPlaceTypes().contains(79)) {
where.setText(place.getName());
loc = true;
} else {
Toast.makeText(getActivity().getApplicationContext(),
badLocation, Toast.LENGTH_LONG).show();
try {
launchPlace();
} catch (GooglePlayServicesNotAvailableException | GooglePlayServicesRepairableException e) {
e.printStackTrace();
}
}
}
}
}
}
此代码之前(3 小时前)有效,现在无效。 LogCat 是这样说的:(Android Studio)
04-21 15:48:02.320 5045-5045/com.siliconmindtech.trofi D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN
04-21 15:48:02.680 5045-5124/com.siliconmindtech.trofi D/OpenGLRenderer﹕ endAllStagingAnimators on 0xa1a55600 (InsetDrawable) with handle 0xa185dff0
04-21 15:48:05.000 5045-5121/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isSBSettingEnabled false
04-21 15:48:05.060 5045-5045/com.siliconmindtech.trofi I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@215c768a time:9757022
如果有人知道解决这个问题的方法,那会很棒,我知道 Google PlacePicker 很新,但我是新手 Android 开发人员,感觉有人有更好的方法理解比我。任何和所有帮助将不胜感激。如果需要更多信息,请告诉我。我们使用 GitHub 所以我一直回到它曾经工作的时候,但没有任何改变,它仍然关闭(选择器,而不是应用程序)。我在开发人员控制台中为 Android 启用了 Google Places API 和 Google Places API,但也没有帮助。它到达 "Updating your location" 屏幕然后停止。
编辑:这是整个 LogCat,从启动(在三星 Galaxy S5 上)到 PlacePicker 启动(该操作之前的一次导航)然后关闭并返回到应用程序。这是你的意思吗?
04-21 16:56:26.740 27318-27318/com.siliconmindtech.trofi D/ResourcesManager﹕ creating new AssetManager and set to /data/app/com.siliconmindtech.trofi-1/base.apk
04-21 16:56:26.910 27318-27318/com.siliconmindtech.trofi D/AbsListView﹕ Get MotionRecognitionManager
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isSBSettingEnabled false
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isShipBuild true
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Thread-13137-1066627414: SmartBonding Enabling is false, SHIP_BUILD is true, log to file is false, DBG is false
04-21 16:56:26.910 27318-27340/com.siliconmindtech.trofi I/System.out﹕ (HTTPLog)-Static: isSBSettingEnabled false
04-21 16:56:26.910 27318-27318/com.siliconmindtech.trofi D/AbsListView﹕ Get MotionRecognitionManager
04-21 16:56:26.940 27318-27318/com.siliconmindtech.trofi D/Activity﹕ performCreate Call secproduct feature valuefalse
04-21 16:56:26.940 27318-27318/com.siliconmindtech.trofi D/Activity﹕ performCreate Call debug elastic valuetrue
04-21 16:56:26.950 27318-27318/com.siliconmindtech.trofi D/AbsListView﹕ Get MotionRecognitionManager
04-21 16:56:26.970 27318-27350/com.siliconmindtech.trofi D/OpenGLRenderer﹕ Render dirty regions requested: true
04-21 16:56:27.030 27318-27350/com.siliconmindtech.trofi I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: ()
OpenGL ES Shader Compiler Version: E031.25.01.03
Build Date: 10/28/14 Tue
Local Branch: LA.BF.1.1_RB1_20141028_021_patches2
Remote Branch:
Local Patches:
Reconstruct Branch:
04-21 16:56:27.030 27318-27350/com.siliconmindtech.trofi I/OpenGLRenderer﹕ Initialized EGL, version 1.4
04-21 16:56:27.050 27318-27350/com.siliconmindtech.trofi I/OpenGLRenderer﹕ HWUI protection enabled for context , &this =0xa23090d8 ,&mEglDisplay = 1 , &mEglConfig = 8
04-21 16:56:27.050 27318-27350/com.siliconmindtech.trofi D/OpenGLRenderer﹕ Enabling debug mode 0
04-21 16:56:27.050 27318-27340/com.siliconmindtech.trofi I/System.out﹕ KnoxVpnUidStorageknoxVpnSupported API value returned is false
04-21 16:56:27.240 27318-27350/com.siliconmindtech.trofi V/RenderScript﹕ Application requested CPU execution
04-21 16:56:27.260 27318-27350/com.siliconmindtech.trofi V/RenderScript﹕ 0xa2377a00 Launching thread(s), CPUs 4
04-21 16:56:27.310 27318-27318/com.siliconmindtech.trofi I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@344b9848 time:13859270
04-21 16:56:29.700 27318-27318/com.siliconmindtech.trofi D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN
04-21 16:56:31.850 27318-27318/com.siliconmindtech.trofi D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN
04-21 16:56:31.970 27318-27318/com.siliconmindtech.trofi I/Places﹕ Got here!
04-21 16:56:32.300 27318-27350/com.siliconmindtech.trofi D/OpenGLRenderer﹕ endAllStagingAnimators on 0xa196d600 (InsetDrawable) with handle 0xaf7fc350
04-21 16:56:32.740 27318-27318/com.siliconmindtech.trofi I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@344b9848 time:13864703
上面的LogCat是冗长的。
解决方法:别像我一样是新手,我忘了把我的GoogleAPI键添加到我的android_manifest.xml...我很抱歉。
只需在 Google 开发者控制台中为 Android 启用 Google Places API。
不要忘记在 AndroidManifest
:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="ADD_YOUR_API_KEY_HERE" />
我相信当 Google 在 2015 年 4 月 20 日更改他们的 API 时,他们修改了 PlacePicker 固有使用的地方 API。对我有用的解决方案如下:
- 转到您的 Google 开发者控制台 (https://console.developers.google.com/project)
- 如果您已经创建了一个项目,请导航至您的项目。如果不去这里:https://developers.google.com/console/help/
- 导航至 "APIs & auth",然后导航至控制台左侧的 "Credentials"。我没有足够的代表 post 一张图片作为指导...
- 创建一个新密钥,它出现在您的凭据 window 中的 Public API 访问权限下。您将需要您的 SHA1 指纹来接收密钥。我使用的方向在这里:How to get the SHA-1 fingerprint certificate in Android Studio for debug mode?
- 您输入 SHA1 指纹的位置应采用以下格式: (您的密钥,20 个以“:”分隔的十六进制值);com.yourpackage.yourapp
- 复制生成的 API 密钥。您需要以上述相同格式添加每个开发者的指纹,以便其他开发者使用。
- 将您的密钥添加到您的 AndroidManifest.xml
<application ...
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_api_key" />
... </application>
<string name="google_api_key">yourkeyhere</string>
- 清理并重建您的项目。现在应该工作了。我不认为我遗漏了任何步骤...如果有请发表评论。
我有同样的问题。我添加 Google 映射键
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key"/>` in manifest file.
地点选择器立即关闭。然后,我还添加
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_api_key" />
Place Picker 显示,但是当我打开地图时,我的应用程序被强行关闭,并记录如下。
RuntimeException: The API key can only be specified once. It is recommended that you use the meta-data tag with the name: com.google.android.maps.v2.API_KEY in the <application> element of AndroidManifest.xml
at com.google.maps.api.android.lib6.d.fb.a(Unknown Source)
at com.google.maps.api.android.lib6.a.g.a(Unknown Source)
at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source)
at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source)
at com.google.android.gms.maps.internal.i.onTransact(SourceFile:62)
at android.os.Binder.transact(Binder.java:364)
at com.google.android.gms.maps.internal.zzc$zza$zza.zzj(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$zzb.zzqs(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$zzb.zza(Unknown Source)
at com.google.android.gms.dynamic.zza.zza(Unknown Source)
at com.google.android.gms.dynamic.zza.onCreate(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onCreate(Unknown Source)
at android.support.v4.app.Fragment.performCreate(Fragment.java:1763)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:915)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
at android.support.v4.app.FragmentManagerImpl.run(FragmentManager.java:456)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at dalvik.system.NativeStart.main(Native Method)
我尝试删除
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key"/>`
但保持
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_api_key" />
它现在运行良好,我不知道为什么。
在 mainfeast 中替换您的元数据标签..它对我有用..
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR ANDROID KEY" />
和
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR ANDROID KEY" />
祝你好运
我修复这个错误的方法是在获取 API 密钥时(在 Google 开发者页面上),在您输入包名称的位置输入完整的包名称。这在您的 android 清单中可用!
我在使用 Places API 时遇到了同样的问题。最后,我发现有不同的 Google 地方 API,尤其是 Android。因此,我使用的 API-Key 仅适用于非 Android 版本。
使用此 link 生成您的密钥: https://developers.google.com/places/android-api/signup
在我的例子中,转到 Google 控制台,然后为 Android Google 地方启用 API,然后转到 Manifest.xml 并将此代码放在
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
并且不要忘记输入 Google API 键