IllegalArgumentException: il provider non esiste: null su Maps V1

Sto utilizzando API V1 di Google Maps. Ho questo errore:

java.lang.IllegalArgumentException: provider doesn't exisit: null 

Questo è il mio codice:

  • Errore Android IndexOutOfBoundsException per la visualizzazione elenco di filtri di ricerca
  • Uri alla notifica di suono predefinita?
  • È Sun Java davvero necessario per utilizzare Android SDK su Ubuntu 10.10? Preferisco OpenJDK
  • Utilizzo di simpleCursorAdapter personalizzato
  • Come recuperare una storia di chat da Openfire utilizzando l'asmack android
  • Ottenere email da Facebook - FB android SDK
  •   locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); String provider = locationManager.getBestProvider(criteria, true); if (provider != null) { startTime = System.currentTimeMillis(); geoLocTimeOutTask = new GeoLocTimeOutTask(); geoLocTimeOutTask.execute(); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); } else { geoLocCallbackObj.geoLocationCallback(tagCallback); } 

    Capisco l'errore, bu la mia domanda è, where il dispositivo mi ha messo questo errore? E come posso evitare questo per favore?

  • Cosa sono i file .dex in Android?
  • Come verificare se è selezionato "Radiobutton"?
  • Dopo il button Home, il rilancio di app mostra l'attività iniziale non attuale
  • Come verificare l'applicazione Dock
  • Aggiornamento del database prepopulated in Android
  • Come scrivere un programma per connettersi a un dispositivo bluetooth a2dp utilizzando pre 3.0 Android?
  • 3 Solutions collect form web for “IllegalArgumentException: il provider non esiste: null su Maps V1”

    Stai chiedendo aggiornamenti dal provider di networking quando quel provider non esiste sul dispositivo. È ansible sostituire queste due righe:

     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); 

    con

     locationManager.requestLocationUpdates(provider, 0, 0, locationListener); 

    Sei già andato allo sforzo di trovare il miglior fornitore che offre il dispositivo per i tuoi criteri in modo che sia quello da utilizzare.

    In alternativa, controllare che il provider esista prima di registrarsi per gli aggiornamenti da esso:

     if (locationManager.getAllProviders().contains(LocationManager.NETWORK_PROVIDER)) locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); if (locationManager.getAllProviders().contains(LocationManager.GPS_PROVIDER)) locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 

    Si sta utilizzando anche zero per la distanza di tempo e minima. Questo è perfetto per test su un dispositivo virtuale ma ricorda di cambiarli quando si utilizza un dispositivo reale, altrimenti lo scarico della batteria sarà alto.

    il suggerito per risolvere questo problema sarebbe quello di utilizzare la nuova ubicazione API anziché quella vecchia http://developer.android.com/google/play-services/location.html

    ma davvero tutto quello che wherete fare fare un controllo

     if(locationManager.getAllProviders().contains(LocationManager.NETWORK_PROVIDER) && locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); } 

    se il provider non è abilitato allora non passare e non si blocca

    Quando il provider non è supportto si ottiene un errore, il modo più semplice per sbarazzarsi di questo problema è quello di utilizzare un criterio.

     locationManager.requestLocationUpdates(locationManager.(new Criteria(),true), 0, 0, locationListener); 

    Nel codice

    criteri – i criteri che devono essere adeguati

    La seconda arg è un boolean:

    enabledOnly – se viene restituito solo un provider attualmente abilitato

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.