2015-01-04 5 views
-1

У меня проблема, я хочу сделать карту, но есть проблема, и это моя проблема. когда я нажимаю ссылку на приложение , моя прикладная сила закрывает неудачу. поэтому, пожалуйста, помогите мне спасибо-хjava.lang.RuntimeException: Невозможно запустить Activity ComponentInfo {com.fuad.traffic/com.fuad.traffic.MainActivity}: java.lang.NullPointerException

в журнале кошки

это мой EROR

01-04 21:48:53.218: E/AndroidRuntime(31063): FATAL EXCEPTION: main 
    01-04 21:48:53.218: E/AndroidRuntime(31063): Process: com.fuad.traffic, PID: 31063 
    01-04 21:48:53.218: E/AndroidRuntime(31063): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fuad.traffic/com.fuad.traffic.MainActivity}: java.lang.NullPointerException 

это мой код

androidmaniefest

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/navigation" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version"/> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="AIzaSyBa_hCEM7hDQG6YoWmV-_gIGfGAnL55j4o"/> 
     <activity 
      android:name="com.fuad.traffic.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

это MainActivity

public class MainActivity extends FragmentActivity implements LocationListener { 
/**static final LatLng TutorialsPoint = new LatLng(37.029869, -76.345222); 
MapView mapView;?*/ 

ArrayList<LatLng>mMarkerPoints; 
double mLatitude =0; 
double mlongitude = 0; 
GoogleMap googleMap; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
RadioGroup rgViews = (RadioGroup) findViewById(R.id.rg_views); 

rgViews.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

@Override 
public void onCheckedChanged(RadioGroup group, int checkedId) { 
// TODO Auto-generated method stub 
if(checkedId == R.id.rb_normal){ 
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
}else if(checkedId == R.id.rb_satelite){ 
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
} 
} 
}); 
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext()); 
if(status!=ConnectionResult.SUCCESS){ 

int requestCode = 10; 
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, requestCode); 
dialog.show(); 
}else { 
mMarkerPoints = new ArrayList<LatLng>(); 


SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map); 
googleMap = fm.getMap(); 
googleMap.setMyLocationEnabled(true); 
LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE); 

Criteria criteria = new Criteria(); 

String provider = locationManager.getBestProvider(criteria, true); 

Location location = locationManager.getLastKnownLocation(provider); 

if (location!=null){ 
onLocationChanged(location); 
} 
locationManager.requestLocationUpdates(provider, 20000, 0, this); 
@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 
} 

ответ

1

В будущем отправьте целую трассировку стека и укажите линии в коде, соответствующие этой трассе стека. Это значительно облегчит людям здесь, в Stack Overflow, чтобы помочь вам справиться с вашей проблемой.

В этом случае вы пытаетесь использовать googleMap перед его инициализацией. Переместите googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL) в какой-то момент после того, как вы позвонили googleMap = fm.getMap();.

Также учтите, что getMap() устарел в текущей версии Maps V2, в пользу getMapAsync(). This directory содержит множество примеров проектов, демонстрирующих использование Maps V2, все из которых были обновлены для использования getMapAsync().

+0

о, да, я нашел своего друга. Thanx @CommonsWare – user3001890

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