在模拟器上测试时无法使用Google Play服务获取位置

时间:2014-11-19 22:47:48

标签: android android-emulator location google-play-services

经过多次寻找SO和其他地方并且无法解决我的问题后,我现在将创建一个新帖子,希望能够解决我的问题。

我正在整理一个测试应用程序以使用Google Play服务获取位置,并且似乎已准备好所有内容 - 包括权限。当测试应用程序通过模拟器运行时,出现错误,指出客户端必须具有ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION权限。下面是堆栈跟踪的一部分。

 11-19 16:34:40.403: E/AndroidRuntime(1245): Caused by: java.lang.SecurityException: Client must
  have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location
  operations.

这是AndroidManifest.xml的一部分

 <uses-sdk
       android:minSdkVersion="8"
       android:targetSdkVersion="21" />

 <uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
 <uses-permission android:name="android.permission.INTERNET" />

 <application>
     <meta-data
         android:name="com.google.android.gms.version"
         android:value="@integer/google_play_services_version" />
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >
     <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
     </activity>
  </application>

还有什么?我正在使用Google API平台5,api 21作为我的构建目标,并将google-play-services ...库添加到项目中。我还在DDMS的“仿真器控制”选项卡上设置了模拟纬度和经度值。

还有什么需要付诸实施才能让它发挥作用吗?可以从模拟器运行吗?对于它的价值,正在使用的项目是从Google下载的LocationUpdates项目。

如果您需要其他信息以帮助我指出正确的方向,请告知我们。

谢谢。

1 个答案:

答案 0 :(得分:0)

即使您的权限位于清单文件中,我也不确定为什么会收到权限错误但我已经可以告诉您,除非您使用的是Google API,否则Google Play服务无法在模拟器上运行

请参阅here

  

要使用Google Play服务API开发应用,您需要使用Google Play服务SDK设置项目。如果您尚未安装Google Play服务SDK,请按照添加SDK包的指南进行操作。   要在使用Google Play服务SDK时测试您的应用,您必须使用以下任一项:       兼容的Android设备,运行Android 2.3或更高版本,包括Google Play商店。       具有AVD的Android模拟器,可运行基于Android 4.2.2或更高版本的Google API平台。

编辑: 哇,我刚刚注意到这篇文章已经很老了。如果这是一个问题,请告诉我或删除帖子