我已经研究这个问题几天了,尝试了 SO 提供的所有方法,但都没有成功。
当我遵循 Google 概述的说明时 here ,在我的 FragmentActivity 下扩展 SupportMapFragment 的自定义 map fragment (QMapFragment
) 中显示通用 Google map 没有任何问题。
(旁注:即使我在 Manifest.xml 中提供了虚拟 API key ,例如“abcd”, map 仍然显示得很好。我对此感到困惑,但无论如何......)
但是当我将 QMapFragment
作为子 fragment 添加到另一个自定义 fragment 时,例如,使用以下代码:
mFrag = QMapFragment.newInstance(new LatLng(location.getLatitude(), location.getLongitude()));
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.framelayout, mFrag).commit();
我看到一个空白屏幕,其中添加了缩放控件到 fragment 中,我在 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。 试一试,它应该有效。
关于android - Google Maps V2 Android 作为 fragment 工作,但将白屏(带缩放控制)显示为子 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135936/