Google 地图在 Android 中突然不显示

Google maps not showing all of a sudden in Android

我目前正在 Android 中开发一个使用 Google 地图的应用程序。我已按照

等所有说明进行操作

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

我在 logcat 上得到以下几行。

W/ResourcesManager﹕ Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.

W/ResourcesManager﹕ Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.

I/Google Maps Android API﹕ Google Play services client version: 6587000

I/Google Maps Android API﹕ Google Play services package version: 6774436

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

compile 'com.google.android.gms:play-services:6.5.87'

如何解决这个问题?是因为 google 播放服务更新了吗?如果是这样,我已经检查了 SDK,并且安装了最新的 Google 播放服务。请帮助任何人

这是日志猫

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

如果您的代码没有这些,请尝试这些:

  • 尝试将 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"/>
    

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

  • 从列表中删除以下导入和相应的方法

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

例如,如果您从接口派生,请检查 BOLD

中的文本

public class Option extends FragmentActivity implements View.OnClickListener, ConnectionCallbacks, OnConnectionFailedListener, LocationSource, com.google.android.gms.location.LocationListener, OnMyLocationButtonClickListener, OnMapReadyCallback {

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

请检查您是否拥有清单中的两种权限 -

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

我最近在 Windows 上升级了我的 Eclipse,Android SDK 使用 Android SDK 管理器。之前工作的 Google 地图停止工作。新的 google 播放服务版本 29 似乎有几项更改。

奇怪的事情 - 下载并更新到新的 SDK Android 6.0 后,较早的 google 播放服务文件在文件夹中消失了。一些与 google 播放服务相关的错误作为文件出现,项目 google_play_services.jar 不再存在于文件夹中 \adt-bundle-windows-x86_64-20140702\sdk\extras\google\google_play_services

然后我下载了 Brad Larson 给出的页面中给出的版本 28 - 在此之后,当构建目标为 5.1.1 时,与 google 播放服务相关的所有错误都消失了。

然后 运行 我的应用程序仍然出现错误 /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 所说的所有其他事情也需要在那里,无论如何我在我的项目中都有。