我已经研究了这个问题几天,并尝试了 SO 提供的所有方法,但没有成功。
当我按照 Google此处列出的说明进行操作时,我可以毫无问题地将通用 Google 地图显示在自定义地图片段 ( QMapFragment
) 中,该地图片段在我的 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。