我在this地址找到了Google地图教程。我下载了项目并更改了清单文件中的API授权代码。我连接了我的设备并尝试运行该应用程序,它崩溃了。
我添加了Google Play服务库,我选择了Google API(2.2)。
Here是我的logcat。什么可能导致这个问题?
非常感谢你。
编辑:
这是我的MainActivity.java文件:
package in.wptrafficanalyzer.locationingooglemapv2;
import android.app.Dialog;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.widget.TextView;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
public class MainActivity extends FragmentActivity implements LocationListener {
GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Getting Google Play availability status
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());
// Showing status
if(status!=ConnectionResult.SUCCESS){ // Google Play Services are not available
int requestCode = 10;
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, requestCode);
dialog.show();
}else { // Google Play Services are available
// Getting reference to the SupportMapFragment of activity_main.xml
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
// Getting GoogleMap object from the fragment
googleMap = fm.getMap();
// Enabling MyLocation Layer of Google Map
googleMap.setMyLocationEnabled(true);
// Getting LocationManager object from System Service LOCATION_SERVICE
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
// Creating a criteria object to retrieve provider
Criteria criteria = new Criteria();
// Getting the name of the best provider
String provider = locationManager.getBestProvider(criteria, true);
// Getting Current Location
Location location = locationManager.getLastKnownLocation(provider);
if(location!=null){
onLocationChanged(location);
}
locationManager.requestLocationUpdates(provider, 20000, 0, this);
}
}
@Override
public void onLocationChanged(Location location) {
TextView tvLocation = (TextView) findViewById(R.id.tv_location);
// Getting latitude of the current location
double latitude = location.getLatitude();
// Getting longitude of the current location
double longitude = location.getLongitude();
// Creating a LatLng object for the current location
LatLng latLng = new LatLng(latitude, longitude);
// Showing the current location in Google Map
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
// Zoom in the Google Map
googleMap.animateCamera(CameraUpdateFactory.zoomTo(15));
// Setting latitude and longitude in the TextView tv_location
tvLocation.setText("Latitude:" + latitude + ", Longitude:"+ longitude );
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
这是我的LogCat:
03-30 21:18:24.042: D/dalvikvm(18745): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp
03-30 21:18:24.042: W/dalvikvm(18745): VFY: unable to resolve instance field 23
03-30 21:18:24.042: D/dalvikvm(18745): VFY: replacing opcode 0x52 at 0x0012
03-30 21:18:24.042: D/dalvikvm(18745): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z
03-30 21:18:24.102: W/dalvikvm(18745): Unable to resolve superclass of Lmaps/p/s; (425)
03-30 21:18:24.102: W/dalvikvm(18745): Link of class 'Lmaps/p/s;' failed
03-30 21:18:24.102: W/dalvikvm(18745): Unable to resolve superclass of Lmaps/y/bo; (3818)
03-30 21:18:24.102: W/dalvikvm(18745): Link of class 'Lmaps/y/bo;' failed
03-30 21:18:24.102: W/dalvikvm(18745): Unable to resolve superclass of Lmaps/i/k; (4206)
03-30 21:18:24.102: W/dalvikvm(18745): Link of class 'Lmaps/i/k;' failed
03-30 21:18:24.102: E/dalvikvm(18745): Could not find class 'maps.i.k', referenced from method maps.z.ag.a
03-30 21:18:24.102: W/dalvikvm(18745): VFY: unable to resolve new-instance 3538 (Lmaps/i/k;) in Lmaps/z/ag;
03-30 21:18:24.102: D/dalvikvm(18745): VFY: replacing opcode 0x22 at 0x006d
03-30 21:18:24.102: D/dalvikvm(18745): VFY: dead code 0x006f-007f in Lmaps/z/ag;.a (Landroid/view/LayoutInflater;Lcom/google/android/gms/maps/GoogleMapOptions;ZLjava/lang/String;)Lmaps/z/ag;
03-30 21:18:24.252: D/dalvikvm(18745): GC_EXTERNAL_ALLOC freed 836K, 49% free 3313K/6471K, external 2458K/2773K, paused 26ms
03-30 21:18:24.272: E/Google Maps Android API(18745): Failed to load map. Could not contact Google servers.
03-30 21:18:24.292: D/AndroidRuntime(18745): Shutting down VM
03-30 21:18:24.292: W/dalvikvm(18745): threadid=1: thread exiting with uncaught exception (group=0x40018560)
03-30 21:18:24.292: E/AndroidRuntime(18745): FATAL EXCEPTION: main
03-30 21:18:24.292: E/AndroidRuntime(18745): java.lang.RuntimeException: Unable to start activity ComponentInfo{in.wptrafficanalyzer.locationingooglemapv2/in.wptrafficanalyzer.locationingooglemapv2.MainActivity}: java.lang.IllegalArgumentException: provider==null
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.app.ActivityThread.access$1500(ActivityThread.java:124)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.os.Handler.dispatchMessage(Handler.java:99)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.os.Looper.loop(Looper.java:130)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.app.ActivityThread.main(ActivityThread.java:3844)
03-30 21:18:24.292: E/AndroidRuntime(18745): at java.lang.reflect.Method.invokeNative(Native Method)
03-30 21:18:24.292: E/AndroidRuntime(18745): at java.lang.reflect.Method.invoke(Method.java:507)
03-30 21:18:24.292: E/AndroidRuntime(18745): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-30 21:18:24.292: E/AndroidRuntime(18745): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-30 21:18:24.292: E/AndroidRuntime(18745): at dalvik.system.NativeStart.main(Native Method)
03-30 21:18:24.292: E/AndroidRuntime(18745): Caused by: java.lang.IllegalArgumentException: provider==null
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1017)
03-30 21:18:24.292: E/AndroidRuntime(18745): at in.wptrafficanalyzer.locationingooglemapv2.MainActivity.onCreate(MainActivity.java:61)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-30 21:18:24.292: E/AndroidRuntime(18745): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
03-30 21:18:24.292: E/AndroidRuntime(18745): ... 11 more
03-30 21:18:27.082: I/Process(18745): Sending signal. PID: 18745 SIG: 9
03-30 21:20:10.565: D/dalvikvm(18826): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp
03-30 21:20:10.565: W/dalvikvm(18826): VFY: unable to resolve instance field 23
03-30 21:20:10.565: D/dalvikvm(18826): VFY: replacing opcode 0x52 at 0x0012
03-30 21:20:10.565: D/dalvikvm(18826): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z
03-30 21:20:10.625: W/dalvikvm(18826): Unable to resolve superclass of Lmaps/p/s; (425)
03-30 21:20:10.625: W/dalvikvm(18826): Link of class 'Lmaps/p/s;' failed
03-30 21:20:10.625: W/dalvikvm(18826): Unable to resolve superclass of Lmaps/y/bo; (3818)
03-30 21:20:10.625: W/dalvikvm(18826): Link of class 'Lmaps/y/bo;' failed
03-30 21:20:10.625: W/dalvikvm(18826): Unable to resolve superclass of Lmaps/i/k; (4206)
03-30 21:20:10.625: W/dalvikvm(18826): Link of class 'Lmaps/i/k;' failed
03-30 21:20:10.625: E/dalvikvm(18826): Could not find class 'maps.i.k', referenced from method maps.z.ag.a
03-30 21:20:10.625: W/dalvikvm(18826): VFY: unable to resolve new-instance 3538 (Lmaps/i/k;) in Lmaps/z/ag;
03-30 21:20:10.625: D/dalvikvm(18826): VFY: replacing opcode 0x22 at 0x006d
03-30 21:20:10.635: D/dalvikvm(18826): VFY: dead code 0x006f-007f in Lmaps/z/ag;.a (Landroid/view/LayoutInflater;Lcom/google/android/gms/maps/GoogleMapOptions;ZLjava/lang/String;)Lmaps/z/ag;
03-30 21:20:10.762: D/dalvikvm(18826): GC_EXTERNAL_ALLOC freed 835K, 49% free 3313K/6471K, external 2458K/2773K, paused 25ms
03-30 21:20:10.782: E/Google Maps Android API(18826): Failed to load map. Could not contact Google servers.
03-30 21:20:10.792: D/AndroidRuntime(18826): Shutting down VM
03-30 21:20:10.792: W/dalvikvm(18826): threadid=1: thread exiting with uncaught exception (group=0x40018560)
03-30 21:20:10.792: E/AndroidRuntime(18826): FATAL EXCEPTION: main
03-30 21:20:10.792: E/AndroidRuntime(18826): java.lang.RuntimeException: Unable to start activity ComponentInfo{in.wptrafficanalyzer.locationingooglemapv2/in.wptrafficanalyzer.locationingooglemapv2.MainActivity}: java.lang.IllegalArgumentException: provider==null
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.app.ActivityThread.access$1500(ActivityThread.java:124)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.os.Handler.dispatchMessage(Handler.java:99)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.os.Looper.loop(Looper.java:130)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.app.ActivityThread.main(ActivityThread.java:3844)
03-30 21:20:10.792: E/AndroidRuntime(18826): at java.lang.reflect.Method.invokeNative(Native Method)
03-30 21:20:10.792: E/AndroidRuntime(18826): at java.lang.reflect.Method.invoke(Method.java:507)
03-30 21:20:10.792: E/AndroidRuntime(18826): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-30 21:20:10.792: E/AndroidRuntime(18826): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-30 21:20:10.792: E/AndroidRuntime(18826): at dalvik.system.NativeStart.main(Native Method)
03-30 21:20:10.792: E/AndroidRuntime(18826): Caused by: java.lang.IllegalArgumentException: provider==null
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1017)
03-30 21:20:10.792: E/AndroidRuntime(18826): at in.wptrafficanalyzer.locationingooglemapv2.MainActivity.onCreate(MainActivity.java:61)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-30 21:20:10.792: E/AndroidRuntime(18826): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
03-30 21:20:10.792: E/AndroidRuntime(18826): ... 11 more
03-30 21:21:04.912: D/dalvikvm(18897): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp
03-30 21:21:04.932: W/dalvikvm(18897): VFY: unable to resolve instance field 23
03-30 21:21:04.932: D/dalvikvm(18897): VFY: replacing opcode 0x52 at 0x0012
03-30 21:21:04.932: D/dalvikvm(18897): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z
03-30 21:21:05.012: W/dalvikvm(18897): Unable to resolve superclass of Lmaps/p/s; (425)
03-30 21:21:05.012: W/dalvikvm(18897): Link of class 'Lmaps/p/s;' failed
03-30 21:21:05.012: W/dalvikvm(18897): Unable to resolve superclass of Lmaps/y/bo; (3818)
03-30 21:21:05.012: W/dalvikvm(18897): Link of class 'Lmaps/y/bo;' failed
03-30 21:21:05.012: W/dalvikvm(18897): Unable to resolve superclass of Lmaps/i/k; (4206)
03-30 21:21:05.012: W/dalvikvm(18897): Link of class 'Lmaps/i/k;' failed
03-30 21:21:05.012: E/dalvikvm(18897): Could not find class 'maps.i.k', referenced from method maps.z.ag.a
03-30 21:21:05.012: W/dalvikvm(18897): VFY: unable to resolve new-instance 3538 (Lmaps/i/k;) in Lmaps/z/ag;
03-30 21:21:05.012: D/dalvikvm(18897): VFY: replacing opcode 0x22 at 0x006d
03-30 21:21:05.022: D/dalvikvm(18897): VFY: dead code 0x006f-007f in Lmaps/z/ag;.a (Landroid/view/LayoutInflater;Lcom/google/android/gms/maps/GoogleMapOptions;ZLjava/lang/String;)Lmaps/z/ag;
03-30 21:21:05.162: D/dalvikvm(18897): GC_EXTERNAL_ALLOC freed 839K, 49% free 3313K/6471K, external 2458K/2773K, paused 26ms
03-30 21:21:05.182: E/Google Maps Android API(18897): Failed to load map. Could not contact Google servers.
03-30 21:21:05.202: D/AndroidRuntime(18897): Shutting down VM
03-30 21:21:05.202: W/dalvikvm(18897): threadid=1: thread exiting with uncaught exception (group=0x40018560)
03-30 21:21:05.202: E/AndroidRuntime(18897): FATAL EXCEPTION: main
03-30 21:21:05.202: E/AndroidRuntime(18897): java.lang.RuntimeException: Unable to start activity ComponentInfo{in.wptrafficanalyzer.locationingooglemapv2/in.wptrafficanalyzer.locationingooglemapv2.MainActivity}: java.lang.IllegalArgumentException: provider==null
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.app.ActivityThread.access$1500(ActivityThread.java:124)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.os.Handler.dispatchMessage(Handler.java:99)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.os.Looper.loop(Looper.java:130)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.app.ActivityThread.main(ActivityThread.java:3844)
03-30 21:21:05.202: E/AndroidRuntime(18897): at java.lang.reflect.Method.invokeNative(Native Method)
03-30 21:21:05.202: E/AndroidRuntime(18897): at java.lang.reflect.Method.invoke(Method.java:507)
03-30 21:21:05.202: E/AndroidRuntime(18897): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-30 21:21:05.202: E/AndroidRuntime(18897): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-30 21:21:05.202: E/AndroidRuntime(18897): at dalvik.system.NativeStart.main(Native Method)
03-30 21:21:05.202: E/AndroidRuntime(18897): Caused by: java.lang.IllegalArgumentException: provider==null
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1017)
03-30 21:21:05.202: E/AndroidRuntime(18897): at in.wptrafficanalyzer.locationingooglemapv2.MainActivity.onCreate(MainActivity.java:61)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-30 21:21:05.202: E/AndroidRuntime(18897): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
03-30 21:21:05.202: E/AndroidRuntime(18897): ... 11 more
03-30 21:21:08.012: I/Process(18897): Sending signal. PID: 18897 SIG: 9
03-30 21:23:35.162: D/dalvikvm(18968): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp
03-30 21:23:35.182: W/dalvikvm(18968): VFY: unable to resolve instance field 23
03-30 21:23:35.182: D/dalvikvm(18968): VFY: replacing opcode 0x52 at 0x0012
03-30 21:23:35.182: D/dalvikvm(18968): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z
03-30 21:23:35.322: W/dalvikvm(18968): Unable to resolve superclass of Lmaps/p/s; (425)
03-30 21:23:35.322: W/dalvikvm(18968): Link of class 'Lmaps/p/s;' failed
03-30 21:23:35.322: W/dalvikvm(18968): Unable to resolve superclass of Lmaps/y/bo; (3818)
03-30 21:23:35.322: W/dalvikvm(18968): Link of class 'Lmaps/y/bo;' failed
03-30 21:23:35.322: W/dalvikvm(18968): Unable to resolve superclass of Lmaps/i/k; (4206)
03-30 21:23:35.322: W/dalvikvm(18968): Link of class 'Lmaps/i/k;' failed
03-30 21:23:35.322: E/dalvikvm(18968): Could not find class 'maps.i.k', referenced from method maps.z.ag.a
03-30 21:23:35.322: W/dalvikvm(18968): VFY: unable to resolve new-instance 3538 (Lmaps/i/k;) in Lmaps/z/ag;
03-30 21:23:35.322: D/dalvikvm(18968): VFY: replacing opcode 0x22 at 0x006d
03-30 21:23:35.332: D/dalvikvm(18968): VFY: dead code 0x006f-007f in Lmaps/z/ag;.a (Landroid/view/LayoutInflater;Lcom/google/android/gms/maps/GoogleMapOptions;ZLjava/lang/String;)Lmaps/z/ag;
03-30 21:23:35.532: D/dalvikvm(18968): GC_EXTERNAL_ALLOC freed 839K, 49% free 3313K/6471K, external 2458K/2773K, paused 27ms
03-30 21:23:35.552: E/Google Maps Android API(18968): Failed to load map. Could not contact Google servers.
03-30 21:23:35.572: D/AndroidRuntime(18968): Shutting down VM
03-30 21:23:35.572: W/dalvikvm(18968): threadid=1: thread exiting with uncaught exception (group=0x40018560)
03-30 21:23:35.572: E/AndroidRuntime(18968): FATAL EXCEPTION: main
03-30 21:23:35.572: E/AndroidRuntime(18968): java.lang.RuntimeException: Unable to start activity ComponentInfo{in.wptrafficanalyzer.locationingooglemapv2/in.wptrafficanalyzer.locationingooglemapv2.MainActivity}: java.lang.IllegalArgumentException: provider==null
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.app.ActivityThread.access$1500(ActivityThread.java:124)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.os.Handler.dispatchMessage(Handler.java:99)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.os.Looper.loop(Looper.java:130)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.app.ActivityThread.main(ActivityThread.java:3844)
03-30 21:23:35.572: E/AndroidRuntime(18968): at java.lang.reflect.Method.invokeNative(Native Method)
03-30 21:23:35.572: E/AndroidRuntime(18968): at java.lang.reflect.Method.invoke(Method.java:507)
03-30 21:23:35.572: E/AndroidRuntime(18968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-30 21:23:35.572: E/AndroidRuntime(18968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-30 21:23:35.572: E/AndroidRuntime(18968): at dalvik.system.NativeStart.main(Native Method)
03-30 21:23:35.572: E/AndroidRuntime(18968): Caused by: java.lang.IllegalArgumentException: provider==null
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1017)
03-30 21:23:35.572: E/AndroidRuntime(18968): at in.wptrafficanalyzer.locationingooglemapv2.MainActivity.onCreate(MainActivity.java:61)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-30 21:23:35.572: E/AndroidRuntime(18968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
03-30 21:23:35.572: E/AndroidRuntime(18968): ... 11 more
答案 0 :(得分:2)
String provider = locationManager.getBestProvider(criteria, true);
在此行中,getBestProvider
正在返回null
。这可能是因为用户已禁用所有可能的providers
。您需要处理此案例,并且只有getLastKnownLocation
非空时才会调用provider
。
答案 1 :(得分:0)
以下行为您的代码创建条件
// Creating a criteria object to retrieve provider
Criteria criteria = new Criteria();
来自关于默认构造函数的文档,
Constructs a new Criteria object. The new object will have no requirements on accuracy, power, or response time; will not require altitude, speed, or bearing; and will not allow monetary cost.
在下一行,您要求的提供商最符合上述要求
String provider = locationManager.getBestProvider(criteria, true);
我猜他们没有这样的提供者,所以你的提供者是空的,最终你正在尝试这个
Location location = locationManager.getLastKnownLocation(null);
这就是你的代码崩溃的地方。