2015-04-25 4 views
1

В настоящее время я работаю над приложением текущего местоположения в Google Map. Все хорошо, и ошибок не обнаружено.Android Google Map не показывает мое местоположение?

Когда я запускаю свое приложение, Google Map может загружать, но не показывает мое текущее местоположение.

Итак, я поставил свой логарифм здесь и, пожалуйста, кто-нибудь мне помог. Это связано с

«путь Asset„/system/framework/com.android.media.remotedisplay.jar“ не существует или не содержит никаких ресурсов.»

? Я сделал некоторые исследования по этому вопросу, но не смог найти решение.

     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 
+0

Что это за шаблон карты google? Пустые плитки? Я подозреваю, что это имеет какое-то отношение к вашему ключу. – inmyth

+0

Я имею в виду, что мое приложение на эмуляторе может запускать только базовую карту google, которая точно такая же, как и новый объект -> выбор целевых Android-устройств -> выберите шаблон активности карты Google. Я установил необходимый SDK, например службу google play в диспетчере SDK, и получил все необходимые разрешения. Но мое дело - мое приложение не показывало мое текущее местоположение. Мне нужно поставить здесь свой код? – lemon

+0

Я не собираюсь создавать новый проект, чтобы увидеть его. Отображает ли карта пустую плитку? Или он показывает карту где-то недалеко от побережья Западной Африки? Первая - это проблема ключа. Вторая - позиция lat, lng = (0, 0). Вам нужно вручную установить свое местоположение, если это так. – inmyth

ответ

1

По умолчанию карта не показывает ваше местоположение. Местоположение предоставляется различными службами: API местоположения Google Play (который supersedes Android location API).

Это минимальный код для его реализации. Сначала добавьте их в манифесте

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

Затем вам нужно построить 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?

+0

Спасибо, inmyth. Последняя ссылка - это то, что я ищу, ее проблема в моей консоли эмулятора. Эти несколько дней я пытался решить проблему местоположения по-разному, и теперь моя проблема окончательно решена. Еще раз спасибо!!! – lemon

+0

И жаль, что я не могу проголосовать, так как у меня нет 15 репутации – lemon

+0

У меня есть еще 1 запрос, который нужно очистить, если я хочу показать текущее местоположение без эмулирования ложной позиции, единственный способ тестирования на реальном устройстве, правильно ли я ? – lemon

Смежные вопросы