Google 地图在 Android 中突然不显示
Google maps not showing all of a sudden in Android
我目前正在 Android 中开发一个使用 Google 地图的应用程序。我已按照
等所有说明进行操作
- 将 google 播放服务依赖项包含到我的项目中
- 正在AndroidSDK中下载google播放服务
- 正在从 google 开发人员控制台创建 Android 密钥。
- 授予必要的权限
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 所说的所有其他事情也需要在那里,无论如何我在我的项目中都有。
我目前正在 Android 中开发一个使用 Google 地图的应用程序。我已按照
等所有说明进行操作- 将 google 播放服务依赖项包含到我的项目中
- 正在AndroidSDK中下载google播放服务
- 正在从 google 开发人员控制台创建 Android 密钥。
- 授予必要的权限
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
然后 运行 我的应用程序仍然出现错误 /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 所说的所有其他事情也需要在那里,无论如何我在我的项目中都有。