【问题标题】:Google Maps API Black Screen谷歌地图 API 黑屏
【发布时间】:2013-08-26 15:54:08
【问题描述】:

今天有人遇到谷歌地图黑屏的问题吗?我正在和一些同事一起做一个项目,突然地图显示黑屏。当我们重新安装应用程序时,它第一次运行良好,然后在重新构建时显示黑屏。这一切都是在 Titanium 的 CLI 界面中完成的(joy)。如果其他人遇到此问题,请回复。不确定这是 Google API 问题还是 Titanium 问题,我们目前正在尝试缩小范围。

【问题讨论】:

  • 目前没有问题。
  • 我还应该说我们在两个运行 Jelly Bean 的不同 Galaxy S3 设备上进行了测试,并于 2013 年 8 月 16 日更新了最新的 Google 地图。我们在运行 ICS 的 HTC 设备上进行了测试,它运行良好。所以不确定这是果冻豆问题还是三星问题。不管它糟透了。

标签: android google-maps


【解决方案1】:

我相信这与 清单中的 android:anyDensity="false"。 我刚刚遇到了同样的行为。 如果你设置 android:anyDensity="true" 它工作正常。

【讨论】:

  • 试过了,它确实有效,但是它破坏了应用程序中的几乎所有其他视图。这张地图现在看起来很不错,但还是得想办法。我很感激先生的建议。
【解决方案2】:

经过大量搜索和尝试,在Manifest.xml 中发现了问题。我将此代码从Application 标记移动到Manifest 中的Activity 标记。

问题出在Manifest

<application
        android:hardwareAccelerated="false"
        android:largeHeap="true">

Manifest 中删除并在Activity 中使用

<activity
        android:name="com.mycompayname.activities.SignUpActivity"
        android:hardwareAccelerated="false"
        android:largeHeap="true"/>

【讨论】:

    【解决方案3】:

    这是一个奇怪的 hacky 解决方案,但请尝试在地图视图的顶部放置一个清晰的图像。

    <ImageView
        android:id="@+id/imageView123"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/transparent" />
    

    这样做解决了谷歌地图在各种情况下的黑点问题,尤其是涉及到动画的时候。

    【讨论】:

    • 你是放在mapview后面的吗?没有保证,只是一个想法。
    【解决方案4】:

    如果您查看任何密度的文档,您会发现强烈建议它保持打开状态。所以我的建议是修正你的其他观点。

    【讨论】:

      【解决方案5】:

      我也遇到过同样的问题:我的应用程序运行了几个月,几周前我在加载地图时看到了黑屏。我想这是谷歌地图的更新......

      我已经修复了它在我已经实现以显示地图的类的构造函数中调用方法 setZOrderOnTop(true)(它继承了 SurfaceView 类)。

      【讨论】:

        【解决方案6】:

        有点晚了,但是,我发现 WebViews(甚至在其他片段上)有时会“崩溃”GL 引擎或导致 MapView 出现黑屏的东西。我在 LogCat 中找到了这个:

        09-30 10:58:17.765: E/libEGL(29805): call to OpenGL ES API with no current context (logged once per thread)
        09-30 10:58:17.765: W/Adreno200-EGL(29805): <qeglDrvAPI_eglSwapBuffers:3421>: EGL_BAD_CONTEXT
        09-30 10:58:17.765: W/HardwareRenderer(29805): EGL error: EGL_BAD_CONTEXT
        09-30 10:58:17.775: W/HardwareRenderer(29805): Mountain View, we've had a problem here. Switching back to software rendering.
        

        为了在 WebView 分离时解决这个问题,我在 Fragment 中调用了 destroy 函数:

        @Override
        public void onDestroyView() {
            if (webView != null) {
                webView.destroy();
                webView = null;
            }
            super.onDestroyView();
        }
        

        也许它也会为您解决问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-03
          • 2017-03-26
          • 2013-06-08
          • 1970-01-01
          • 2017-12-25
          • 1970-01-01
          相关资源
          最近更新 更多