【问题标题】:Google maps not showing all of a sudden in Android谷歌地图没有在Android中突然显示
【发布时间】:2015-04-21 01:14:56
【问题描述】:

我目前正在开发一个使用 Google 地图的 Android 应用程序。我已按照所有说明进行操作,例如

  • 在我的项目中包含 google play services 依赖项
  • 在 Android SDK 中下载 google play 服务
  • 从 Google 开发者控制台创建 Android 密钥。
  • 提供必要的权限

谷歌地图按预期正常显示,直到现在突然出现黑屏。

我在 logcat 上得到以下几行。

W/ResourcesManager﹕资产路径 '/system/framework/com.android.media.remotedisplay.jar' 不存在或不包含资源。

W/ResourcesManager﹕资产路径'/system/framework/com.android.location.provider.jar'不存在或不包含资源。

I/Google Maps Android API:Google Play 服务客户端版本:6587000

I/Google Maps Android API:Google Play 服务包版本:6774436

这是我在 build.gradle 文件中的依赖项

编译'com.google.android.gms:play-services:6.5.87'

我该如何解决这个问题?是因为谷歌播放服务的一些更新吗?如果是这样,我检查了 SDK 并安装了最新的 Google Play 服务。请帮助任何人

这是日志猫

02-19 13:53:01.212  14731-14749 D/OpenGLRenderer﹕ Render dirty regions requested: true
02-19 13:53:01.218  14731-14731 D/Atlas﹕ Validating map...
02-19 13:53:01.292  14731-14749 I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: QUALCOMM Build: 10/03/14, c40da3f, Ifda814c646
02-19 13:53:01.293  14731-14749 I/OpenGLRenderer﹕ Initialized EGL, version 1.4
02-19 13:53:01.311  14731-14749 D/OpenGLRenderer﹕ Enabling debug mode 0
02-19 13:53:04.472  14731-14731 I/x﹕ Making Creator dynamically
02-19 13:53:04.477  14731-14731 W/ResourcesManager﹕ Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
02-19 13:53:04.478  14731-14731 W/ResourcesManager﹕ Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
02-19 13:53:04.503  14731-14731 I/Google Maps Android API﹕ Google Play services client version: 6587000
02-19 13:53:04.515  14731-14731 I/Google Maps Android API﹕ Google Play services package version: 6774436

【问题讨论】:

  • 我可以在我的应用程序中免费使用谷歌地图服务,对吗?还是我应该向 Google 付款?
  • 试试这个compile 'com.google.android.gms:play-services-location:6.5.87'
  • 我刚试过但没有运气@cYrixmorten
  • 好的,值得一试,您的应用中是否从以前版本的 Google Play 服务进行了更新?只是认为您的设备可能没有所有可用的更新,如果您的代码没有检查这一点,这可能是突然失败的原因。
  • 我没有改变任何东西。我从一开始就使用相同的 'compile 'com.google.android.gms:play-services:6.5.87' 开始开发

标签: java android google-maps


【解决方案1】:

如果你的代码没有这些,试试这些:

  • 尝试将 android:name="com.google.android.gms.maps.SupportMapFragment" 添加到您的 fragment.xml。

  • 尝试使用扩展片段而不是扩展 SupportMapFragment。

  • onMapReady() 是由对 MapFragment 上的 getMapAsync() 的调用触发的,一定要这样做。

  • 如果缺少某些权限,还要检查您的清单文件

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    
    <permission
    android:name="your.package.name.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />
    <uses-permission android:name="your.package.name.permission.MAPS_RECEIVE"/>
    <uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>
    

张贴你的日志猫,以便找出确切的原因!

【讨论】:

  • 感谢您的建议。我已经同时添加了您建议的所有更改,以检查问题是否已解决。但没有运气。我在上面的问题中添加了 logcat。奇怪的是,如果我创建一个全新的项目,我会得到想要的地图屏幕。但是我当前的项目在过去几天工作得很好之后出现了空白屏幕。而且重做项目太费时间了。
  • 最近有一个 Google Play 服务更新,它可能会导致这个突然的问题。
  • 仅在清单中添加权限即可解决问题
  • 谢谢,添加权限“”对我有用。
【解决方案2】:
  • 从列表和相应的方法中删除以下导入

    import android.location.LocationListener;
    
  • 改为使用 Google API 类中的位置侦听器 并将您的界面更改为完整的命名空间 com.google.android.gms.location.LocationListener

例如,如果您从 BOLD

中的界面检查文本派生

public 类 Option 扩展 FragmentActivity 实现 View.OnClickListener, 连接回调, OnConnectionFailedListener, 位置来源, com.google.android.gms.location.LocationListener, OnMyLocationButtonClickListener, OnMapReadyCallback {

如果默认情况下没有给出完整的命名空间,编译器会采用 Android 标准 LocationListner 并给出错误。

【讨论】:

  • 没有删除错误:资产路径'/system/framework/com.google.android.maps.jar'不存在或不包含资源
【解决方案3】:

请检查您的清单中是否有这两个权限 -

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

【讨论】:

    【解决方案4】:

    我最近在 Windows 上升级了我的 Eclipse,即使用 Android SDK 管理器的 Android SDK。之前工作的谷歌地图停止工作。新的 google play services 29 版似乎有一些变化。

    奇怪的事情 - 下载并更新到新的 SDK Android 6.0 后,早期的 google play 服务文件在文件夹中消失了。随着文件和项目 google_play_services.jar 不再存在于文件夹中,出现了几个与 google play 服务相关的错误 \adt-bundle-windows-x86_64-20140702\sdk\extras\google\google_play_services

    然后我下载了 Brad Larson 给出的页面中给出的版本 28 Missing "<sdk>/extras/google/google_play_services/libproject" folder after update to revision 30 - 此后,当构建目标为 5.1.1 时,与 google play 服务相关的所有错误都消失了。

    然后在运行应用程序时我仍然遇到错误 /system/framework/com.google.android.maps.jar 不存在或不包含资源错误

    (1) 正如上面 bummi 所建议的,我从 Android 5.1.1 (SDK 22) 切换到 Google API 5.1.1,它开始工作了!! (2) 我也尝试使用 Google API 6.0 进行编译,并且成功了。

    上面 Bummi 所说的所有其他东西也需要在那里,无论如何我的项目中都有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多