B4A
Failed resolution of: Lcom/google/android/gms/location/LocationListener; – B4X NoClassDefFoundError
Il runtime non trova LocationListener perché le dipendenze Google Play Services richieste da FusedLocationProvider non sono state aggiunte o risolte nel modulo Main. Nel caso documentato l'aggiunta delle dipendenze AdditionalJar corrette ha eliminato l'errore; la scheda è riferita alla configurazione legacy della libreria.
Cosa significa questo errore?
Il runtime non trova LocationListener perché le dipendenze Google Play Services richieste da FusedLocationProvider non sono state aggiunte o risolte nel modulo Main. Nel caso documentato l'aggiunta delle dipendenze AdditionalJar corrette ha eliminato l'errore; la scheda è riferita alla configurazione legacy della libreria.
Messaggio originale
Failed resolution of: Lcom/google/android/gms/location/LocationListener;Contesto e parole chiave
Alias
- FusedLocationProvider missing class
- LocationListener not found
Messaggi alternativi
- NoClassDefFoundError per com.google.android.gms.location.LocationListener
Prodotti
- B4A
- FusedLocationProvider
- Google Play Services
Piattaforme
- Android
Parole chiave
- b4a fusedlocationprovider noclassdeffound
- locationlistener b4a
- play-services-location additionaljar
Cause possibili
Dipendenze Google Play Services non presenti nel classpath
FusedLocationProvider referenzia le classi di Google Play Services e della libreria di supporto. Se le AdditionalJar non sono dichiarate in Main o sono state sostituite da versioni incompatibili, LocationListener non entra nell'APK e la risoluzione della classe fallisce a runtime.
comuneDiagnosi
Dipendenze del modulo Main e archivi risolti
Verificare le direttive AdditionalJar in Main e controllare nel log di compilazione che play-services-location e la libreria di supporto siano state scaricate e incluse.
Come leggere il risultato. Se LocationListener è l'unica classe mancante e le dipendenze non compaiono nel classpath, il problema è di configurazione delle librerie.
Risoluzione
Dichiarare le dipendenze FusedLocationProvider in Main
Aggiungere le dipendenze Maven nel progetto B4A e allinearle alla versione della libreria e del repository Android utilizzati.
- Inserire le due AdditionalJar nel modulo Main, non soltanto in un modulo secondario.
- Assicurarsi che Android Support Repository o le dipendenze equivalenti richieste siano disponibili.
- Pulire e ricompilare, quindi verificare che il runtime risolva LocationListener.
#AdditionalJar: com.android.support:support-v4#AdditionalJar: com.google.android.gms:play-services-locationDomande frequenti
Questa soluzione vale per ogni versione attuale di B4A?
È una correzione documentata per la configurazione legacy del thread. Per versioni moderne va verificata la matrice di dipendenze della libreria installata prima di riutilizzare le stesse direttive.
Approfondimenti
- FusedLocationProvider B4A help documentazione_b4x_ufficiale
- FusedLocationProvider Error thread_b4x_tecnico
- FusedLocationProvider error NoClassDefFound thread_b4x_verificato