android-fragments - Google 在 AVD 上使用 4.3 SDK 18 映射 v2 灰屏

标签 android-fragments avd android-maps-v2

我为 android 的 google maps v2 创建了我的 google api key ,一切都在 eclipse 中为 google map 设置(使用 google+api 构建,链接到 google play 服务,api key 排序等),我可以在上面查看 map 应用程序我的手机,但是当我在 AVD 上查看同一个应用程序时,它会转到正确的位置,我可以看到所有的 google map 叠加层(例如缩放按钮),但没有 map ,它只是一个灰色框。网络也很好。

我使用的是最新的 4.3 API 18 版本,我的 AVD 是默认的 Nexus One。在此之前,我收到了可怕的“更新谷歌播放服务”消息,我发现这是由于 map v2 根本无法在 4.2 上工作,所以我升级了阅读 map 应该可以在 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" />

初始化 map 的代码:
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();
        }
    }       
}

显示 map 的代码:
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();

    }
}

最佳答案

你应该看到类似的东西

E/Google Maps Android API﹕ Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above

在控制台中。这是带有 Google API 的模拟器的已知问题。我建议切换到 Genymotion , 效果很好。

关于android-fragments - Google 在 AVD 上使用 4.3 SDK 18 映射 v2 灰屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19229141/

相关文章:

android - 具有透明状态栏的全屏 fragment (以编程方式)

android - 是否可以转储设备硬件配置文件以创建等效的 AVD?

android - 为什么像素密度较高的设备屏幕空间较小? ( eclipse AVD)

android - NestedScrollView 内的 MapView 不滚动

java - 如何在 Activity 上添加多个 fragment 时划分 android 的 Action bar

android - Tab 内的 ViewPager 无法正确显示项目

android-fragments - Firebase+回收站 View : RecyclerView not displaying on application start

android - 有没有办法自动化 Android SDK 安装?

android - 从数据库中在谷歌地图(API V2)上显示多个标记

android - 如何在android中动态地给map api key