【发布时间】:2014-03-28 20:46:44
【问题描述】:
我正在创建一个应用程序,我必须在其中获取用户的经度和纬度并标记他的位置。我的应用程序出现错误“不幸的是地图已停止”。我搜索了很多但无法找到解决方案。这是我的代码和我的日志猫。
public class MapView extends Activity {
private LocationManager locationManager;
private String best;
double myLocationLatitude;
double myLocationLongitude;
Location loc = locationManager.getLastKnownLocation(best);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_layout);
locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
// additionally (you have to implement LocationListener)
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0.0f, new android.location.LocationListener()
{
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
Log.d("a","onLocationChanged: lat=" +location.getLatitude());
Log.d("a","onLocationChanged: lat=" +location.getLongitude());
}
});
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
GoogleMap mMap = null;
mMap.addMarker(new MarkerOptions().draggable(true)
.position(new LatLng(loc.getLatitude(),loc.getLongitude()))
.title("YOUR LOCATION"));
日志猫:
03-29 01:37:37.167: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41fb9070noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:37.364: D/dalvikvm(2521): GC_FOR_ALLOC 释放 870K, 13% 免费6526K/7424K,暂停110ms,共110ms 03-29 01:37:37.365: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41fc0078noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:37.637: E/链接器(2521): load_library(linker.cpp:757): 图书馆 “/data/data/com.google.android.gms/files/libAppDataSearchExt_armeabi_v7a.so” 未找到 03-29 01:37:37.642: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41f7ffd8noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:37.833: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41ea8d40noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:38.324: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41f19948noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:38.645: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41fa1000noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:38.658: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41ee72b0noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:38.668:I/Icing(2521):内部初始化完成:存储状态 0 03-29 01:37:38.725: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@41f7a920noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:38.755: I/Icing(2521): 初始化后完成 03-29 01:37:38.879: W/asset(2521):AssetManager-->addDefaultAssets CIP 路径不存在! 03-29 01:37:40.148: I/dalvikvm(2521): 找不到方法 android.app.admin.DevicePolicyManager.isDeviceOwnerApp,引用 从方法 com.google.android.gms.init.InitializeIntentService.onHandleIntent 03-29 01:37:40.148: W/dalvikvm(2521): VFY: 无法解析虚拟 方法 1697:Landroid/app/admin/DevicePolicyManager;.isDeviceOwnerApp (Ljava/lang/String;)Z 03-29 01:37:40.148: D/dalvikvm(2521): VFY: 将操作码 0x6e 替换为 0x00e0 03-29 01:37:40.903: I/Icing(2521): 索引 38E683E5680B78374039C38CC697D19B079F6A63 来自 com.google.android.googlequicksearchbox 03-29 01:37:41.108: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@420511f0noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:41.505: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@420542a0noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:41.520: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@42055cb8noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:41.534: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@42058ce8noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:41.546: D/ActivityThread(2521): installProvider: 上下文=android.app.ContextImpl@41e4f100holder=android.app.IActivityManager$ContentProviderHolder@4205a700noisy=truenoReleaseNeeded=falsestable=false 03-29 01:37:41.554: I/Icing(2521): 索引完成 38E683E5680B78374039C38CC697D19B079F6A63 03-29 01:37:44.889: D/IPCThreadState(2521):[DN #5] BR_CLEAR_DEATH_NOTIFICATION_DONE cookie 0x41263ee8
【问题讨论】:
-
需要初始化locationManager。
-
我试过了,但错误没有解决。
-
请用您尝试过的内容更新您的问题。在初始化之前确保你没有使用
locationManager。 (Location loc = locationManager.getLastKnownLocation(best);就是一个很好的例子) -
您可以简单地将
private LocationManager locationManager;行替换为private LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);(但这可能会产生意想不到的冲突) -
您还引用了一个未初始化的
String best,这会在您清理locationManager部分后导致问题。
标签: java android google-maps