Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Maps V2 Android作为片段工作,但显示白色屏幕(带有缩放控制)作为子片段_Android_Google Maps_Google Maps Android Api 2 - Fatal编程技术网

Google Maps V2 Android作为片段工作,但显示白色屏幕(带有缩放控制)作为子片段

Google Maps V2 Android作为片段工作,但显示白色屏幕(带有缩放控制)作为子片段,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我已经研究这个问题好几天了,尝试了SO提供的所有方法都没有成功 当我按照Google概述的说明操作时,我可以在自定义地图片段(QMapFragment)中显示一个通用的Google地图,它在我的FragmentActivity下扩展了SupportMapFragment (旁注:即使我在Manifest.xml中提供了一个伪API键,例如“abcd”,映射仍然显示得很好。我对此感到困惑,但无论如何……) 但是当我将QMapFragment作为子片段添加到另一个自定义片段时,例如,使用以下代码:

我已经研究这个问题好几天了,尝试了SO提供的所有方法都没有成功

当我按照Google概述的说明操作时,我可以在自定义地图片段(
QMapFragment
)中显示一个通用的Google地图,它在我的FragmentActivity下扩展了SupportMapFragment

(旁注:即使我在Manifest.xml中提供了一个伪API键,例如“abcd”,映射仍然显示得很好。我对此感到困惑,但无论如何……)

但是当我将
QMapFragment
作为子片段添加到另一个自定义片段时,例如,使用以下代码:

mFrag = QMapFragment.newInstance(new LatLng(location.getLatitude(), location.getLongitude()));
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();

transaction.add(R.id.framelayout, mFrag).commit();
我看到一个带有缩放控件的空白屏幕被添加到片段中,我在LogCat中看到了这一点

08-08 13:44:25.914: W/dalvikvm(7057): VFY: unable to resolve instance field 30
08-08 13:44:25.914: D/dalvikvm(7057): VFY: replacing opcode 0x52 at 0x0012
08-08 13:44:25.914: D/dalvikvm(7057): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z
08-08 13:44:26.000: I/dalvikvm(7057): Total arena pages for JIT: 11
08-08 13:44:26.180: W/dalvikvm(7057): Unable to resolve superclass of Lmaps/p/w; (734)
08-08 13:44:26.180: W/dalvikvm(7057): Link of class 'Lmaps/p/w;' failed
08-08 13:44:26.180: W/dalvikvm(7057): Unable to resolve superclass of Lmaps/ap/as; (6056)
08-08 13:44:26.180: W/dalvikvm(7057): Link of class 'Lmaps/ap/as;' failed
08-08 13:44:26.180: W/dalvikvm(7057): Unable to resolve superclass of Lmaps/af/k; (5085)
08-08 13:44:26.180: W/dalvikvm(7057): Link of class 'Lmaps/af/k;' failed
08-08 13:44:26.187: E/dalvikvm(7057): Could not find class 'maps.af.k', referenced from method maps.ag.an.a
08-08 13:44:26.187: W/dalvikvm(7057): VFY: unable to resolve new-instance 4928 (Lmaps/af/k;) in Lmaps/ag/an;


不,我没有从调试器获得“授权失败”,并且我的控制台在Google API上设置为Google Android v2。

我记得在使用transaction.add时也遇到过同样的问题。从那时起,我的一个基本规则就是不再使用transaction.add,而是使用transaction.replace。
试试看,它会有用的。

这很奇怪。如果你可以做一个可重复的测试用例,你可能会考虑提交一个问题,同时也注意到你的项目不需要谷歌API——这是地图V1。如果你遇到这些问题,总是完全卸载和重新安装你的应用程序。我还注意到,在某些条件下,API密钥缓存会出现问题。无效的API键导致映射显示正常,而有效的API键导致映射未显示:如果将
QMapFragment.newInstance(…)
替换为
SupportMapFragment.newInstance()
,会发生什么情况?旁注:使用伪API键不会导致任何问题,因为第一个键检查是缓存的。一个糟糕的实现,我会说,所以总是卸载应用程序,并在有疑问时再次安装(如ddewaele所说)。Thx的链接重新缓存。我确认如果我删除并使用伪键重新安装,日志显示:08-08 15:12:29.617:E/Google Maps Android API(14333):无法加载地图。联系谷歌服务器时出错。这可能是身份验证问题(但可能是由于网络错误)。我已经输入了正确的API密钥,它可以正常工作,所以我们可以排除它是API密钥问题@MaciejGórski当我使用SupportMapFragment时,会显示相同的行为和错误日志。我已经尝试使用替换。同样的行为也发生了。事实上,尽管进行了替换,原始片段仍在显示。从那以后,我就不再尝试包含完整的谷歌地图,转而只使用谷歌地图