我为Android谷歌地图v2创建了我的谷歌api键,所有内容都设置在eclipse中用于谷歌地图(使用谷歌+ api构建,链接到谷歌播放服务,api键排序等),我可以查看地图应用程序在我的手机上很好,但是当我在AVD上查看相同的应用程序时它会到达正确的位置,我可以看到所有的谷歌地图叠加(例如缩放按钮),但没有地图,它只是一个灰色的框。网络也很好。
我正在使用最新的4.3 API 18版本,而我的AVD是默认的Nexus One。在此之前我得到了可怕的'更新谷歌播放服务'消息,我发现这是因为地图v2根本没有在4.2上工作所以我升级阅读地图应该可以在AVD上使用SDK 18。
知道它为什么没有显示?当我开始使用AVD时,我注意到它使用了软件opengl,但我认为它没问题。
我已经阅读了各种stackoverflow文章,但他们都指出了一个不正确的配置,我的很好,当我把它发送到我的手机并且它没有丢失任何错误时工作正常。
如果这里有任何帮助,我会使用一些代码片段。
清单:
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="XXXXXXXXXXXXXXXXXXXX"/>
布局摘要:
<fragment
android:id="@+id/worldmap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
初始化地图的代码:
private void initialiseMap() {
if (googleMap == null) {
googleMap = ((SupportMapFragment) getFragmentManager().findFragmentById(
R.id.worldmap)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(activity.getApplicationContext(),
"Unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
显示地图的代码:
private void displayLocation(Location l, String text) {
if(googleMap!=null) {
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
LatLng ll=new LatLng(l.getLatitude(), l.getLongitude());
CameraPosition cp=new CameraPosition.Builder()
.target(ll)
.zoom(18)
.build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cp));
Toast.makeText(activity, l.getLatitude()+":"+l.getLongitude(), Toast.LENGTH_LONG).show();
}
}
答案 0 :(得分:0)
您应该看到类似
的内容E/Google Maps Android API﹕ Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above
在控制台中。这是使用Google API的模拟器的已知问题。我建议切换到Genymotion,它可以正常工作。
答案 1 :(得分:0)
在AVD上成功运行Google地图
现在一切都准备好在模拟器上测试Google maps v2了。在模拟器上运行您的应用程序
答案 2 :(得分:0)
根据我的经验,我看到只是获得灰色地图意味着存在一些许可证密钥问题(因此Google拒绝提供彩色地图图块),但是否则其他所有内容都可能适用于您的应用程序(尤其是如果你可以滚动灰色地图)。