6

我已经研究了这个问题几天,并尝试了 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。

4

1 回答 1

0

我记得在使用 transaction.add 时遇到了同样的问题。从那时起,我的基本规则之一就是永远不要再次使用 transaction.add 并改用 transaction.replace。试试吧,它应该工作。

于 2013-08-09T10:47:57.810 回答