我目前正在开发Google Map当前位置应用程序。一切都很好,没有检测到错误。
当我运行我的应用程序时,Google Map可以加载但不显示我当前的位置。
所以我把logcat放在这里,请有人帮助我。它与
有关" Asset path' /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 :(得分:1)
默认情况下,地图不会显示您的位置。位置由不同的服务提供:Google Play位置API(supersedes Android位置API)。
这是实现它的最低代码。 首先在清单中添加这些
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
然后,您需要在地图活动
中构建GoogleApiClientpublic 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?