java - Android 谷歌地图不显示我的位置?

标签 java android google-maps gps location

我目前正在开发 Google map 当前位置应用程序。一切都很好,没有检测到错误。

当我运行我的应用程序时,Google map 能够加载,但不显示我当前的位置。

所以我把我的 logcat 放在这里,请有人帮助我。是否与此有关

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

?我对此进行了一些研究,但找不到解决方案。

                      1882-1882/com.example.yan.basicmap I/art﹕ Not late-enabling -Xcheck:jni (already on)
04-25 23:40:47.534    1882-1882/com.example.yan.basicmap I/zzx﹕ Making Creator dynamically
04-25 23:40:47.536    1882-1882/com.example.yan.basicmap W/ResourcesManager﹕ Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
04-25 23:40:47.536    1882-1882/com.example.yan.basicmap W/ResourcesManager﹕ Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
04-25 23:40:47.552    1882-1894/com.example.yan.basicmap I/art﹕ WaitForGcToComplete blocked for 15.238ms for cause Background
04-25 23:40:47.698    1882-1882/com.example.yan.basicmap I/Google Maps Android API﹕ Google Play services client version: 7095000
04-25 23:40:47.908    1882-1882/com.example.yan.basicmap I/Google Maps Android API﹕ Google Play services package version: 7097470
04-25 23:40:47.912    1882-1894/com.example.yan.basicmap I/art﹕ Background sticky concurrent mark sweep GC freed 375(38KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 1563KB/1563KB, paused 2.019ms total 257.132ms
04-25 23:40:48.190    1882-1894/com.example.yan.basicmap W/art﹕ Suspending all threads took: 26.203ms
04-25 23:40:48.199    1882-1894/com.example.yan.basicmap I/art﹕ Background partial concurrent mark sweep GC freed 230(18KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 1630KB/2MB, paused 31.158ms total 193.459ms
04-25 23:40:48.752    1882-1894/com.example.yan.basicmap W/art﹕ Suspending all threads took: 9.022ms
04-25 23:40:48.759    1882-1894/com.example.yan.basicmap I/art﹕ Background sticky concurrent mark sweep GC freed 19138(735KB) AllocSpace objects, 2(545KB) LOS objects, 6% free, 8MB/8MB, paused 11.294ms total 74.473ms
04-25 23:40:48.945    1882-1894/com.example.yan.basicmap I/art﹕ Background sticky concurrent mark sweep GC freed 12748(531KB) AllocSpace objects, 0(0B) LOS objects, 2% free, 10MB/10MB, paused 11.798ms total 71.362ms
04-25 23:40:50.436    1882-1894/com.example.yan.basicmap I/art﹕ Background sticky concurrent mark sweep GC freed 1700(149KB) AllocSpace objects, 0(0B) LOS objects, 2% free, 10MB/10MB, paused 4.556ms total 105.593ms
04-25 23:40:50.570    1882-1894/com.example.yan.basicmap I/art﹕ Background partial concurrent mark sweep GC freed 1133(91KB) AllocSpace objects, 0(0B) LOS objects, 15% free, 10MB/12MB, paused 2.771ms total 112.451ms
04-25 23:40:50.580    1882-1916/com.example.yan.basicmap D/OpenGLRenderer﹕ Render dirty regions requested: true
04-25 23:40:50.583    1882-1882/com.example.yan.basicmap D/﹕ HostConnection::get() New Host Connection established 0xa0174c30, tid 1882
04-25 23:40:50.674    1882-1882/com.example.yan.basicmap D/Atlas﹕ Validating map...
04-25 23:40:50.700    1882-1916/com.example.yan.basicmap D/﹕ HostConnection::get() New Host Connection established 0xa015b4c0, tid 1916
04-25 23:40:50.795    1882-1916/com.example.yan.basicmap I/OpenGLRenderer﹕ Initialized EGL, version 1.4
04-25 23:40:50.888    1882-1916/com.example.yan.basicmap D/OpenGLRenderer﹕ Enabling debug mode 0
04-25 23:40:50.962    1882-1916/com.example.yan.basicmap W/EGL_emulation﹕ eglSurfaceAttrib not implemented
04-25 23:40:50.962    1882-1916/com.example.yan.basicmap W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa0f71d20, error=EGL_SUCCESS
04-25 23:40:51.140    1882-1913/com.example.yan.basicmap D/﹕ HostConnection::get() New Host Connection established 0xa0113f10, tid 1913
04-25 23:40:51.735    1882-1882/com.example.yan.basicmap I/MapsActivity﹕ Location services connected.
04-25 23:40:53.899    1882-1894/com.example.yan.basicmap I/art﹕ Background partial concurrent mark sweep GC freed 2315(140KB) AllocSpace objects, 5(827KB) LOS objects, 10% free, 16MB/18MB, paused 1.544ms total 401.616ms
04-25 23:40:59.365    1882-1894/com.example.yan.basicmap I/art﹕ Background partial concurrent mark sweep GC freed 473(30KB) AllocSpace objects, 4(5MB) LOS objects, 10% free, 16MB/18MB, paused 1.382ms total 102.324ms
04-25 23:41:01.378    1882-1882/com.example.yan.basicmap I/Google Maps Android API﹕ Google Play services package version: 7097470
04-25 23:41:01.565    1882-1916/com.example.yan.basicmap W/EGL_emulation﹕ eglSurfaceAttrib not implemented
04-25 23:41:01.565    1882-1916/com.example.yan.basicmap W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa0f71d20, error=EGL_SUCCESS
04-25 23:41:01.708    1882-2003/com.example.yan.basicmap D/﹕ HostConnection::get() New Host Connection established 0x9f066af0, tid 2003
04-25 23:41:01.784    1882-1882/com.example.yan.basicmap I/MapsActivity﹕ Location services connected.
04-25 23:41:03.463    1882-1894/com.example.yan.basicmap I/art﹕ Background partial concurrent mark sweep GC freed 3979(232KB) AllocSpace objects, 10(5MB) LOS objects, 10% free, 17MB/19MB, paused 11.308ms total 39.779ms

最佳答案

默认情况下, map 不会显示您的位置。位置由不同的服务提供:Google Play 位置 API(其中 supersedes Android 位置 API)。

这是实现它的最少代码。 首先将这些添加到您的 list 中

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

然后您需要在 map Activity 中构建 GoogleApiClient

public class MyMapActivity extends Activity {

 private GoogleMap googleMap;
 private GoogleApiClient mGoogleApiClient;
 protected Location mLastLocation;

  @Override
  public void onCreate(Bundle inState) {
  // do whatever initialization including one for googleMap
     mGoogleApiClient = new GoogleApiClient.Builder(this)
     .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {

          @Override
          public void onConnected(Bundle arg0) {
             // this is where you got your last location
             mLastLocation = LocationServices.FusedLocationApi
             .getLastLocation(mGoogleApiClient);
             // then center on map
             LatLng mLatLng = new LatLng(mLastLocation.getLatitude(),
             mLastLocation.getLongitude());
             googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom
             (mLatLng, 14), 1000, null);

           }

           @Override
             public void onConnectionSuspended(int arg0) {
           }

     })
     .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {

           @Override
           public void onConnectionFailed(ConnectionResult conResult) {
             if (conResult.hasResolution()){
              try{
                conResult.startResolutionForResult(MyMapActivity.this,
                CONNECTION_FAILURE_RESOLUTION_REQUEST);
               }catch(SendIntentException e){
                    e.printStackTrace();
               }                    
              }
             }})
     .addApi(LocationServices.API)
     .build();
  }

}


  @Override
  protected void onStart() {
    super.onStart();
    mGoogleApiClient.connect();
  }

  @Override
  protected void onStop() {
    super.onStop();
    mGoogleApiClient.disconnect();
  }

这是official how-to以供引用。

下一个问题是您正在使用模拟器,因此您需要模拟模拟职位。此链接将更好地解释如何:How to emulate GPS location in the Android Emulator?

关于java - Android 谷歌地图不显示我的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868733/

相关文章:

java - 要求用户切换到新包的最愉快方式(删除实际应用程序并安装新应用程序)

java - 读取写入 Firebase 实时数据库

javascript - 谷歌地图未显示在页面中

android - 如何从经纬度获取村名、区和街道

java - Apache POI 图表 - 标题格式

java - 如何从 Java 运行 cygwin?

java - JDBC 领域找不到 mysql 驱动程序

java - Android-Jacoco代码覆盖率忽略了Robolectric测试

android - Gradle:如何构建不同构建类型的不同风格?

google-maps - flutter 中的 map View