2017-12-29 11 views
0

Meine Frage ist im Grunde das gleiche wie this question von vor 4 Jahren, aber die einzige Antwort auf die Frage hat nicht funktioniert. Also frage ich das noch einmal.Google Maps, system_process E/LocSvc_eng_nmea: I/<=== nmea_cb Linie 62

Meine Konfiguration ist die folgenden.

implementation 'com.google.android.gms:play-services-maps:11.8.0' 
compile 'com.google.maps.android:android-maps-utils:0.5' 
targetSdkVersion 27 
compileSdkVersion 27 
buildToolsVersion "27.0.3" 

Die Hauptaktivität hat Registerkarten, von denen ein Fragment ist. Eines der Fragmente enthält Google Maps, das selbst ein Fragment ist.

Es funktioniert gut, aber wenn ich das Protokoll mit "No Filters" sehe, sind seltsame rote Logs überflutet.

system_process E/LocSvc_eng_nmea: I/<=== nmea_cb line 62 [some hex value] 
system_process E/LocSvc_eng_nmea: I/<=== nmea_cb line 62 [some hex value] 

Ich habe die Antwort in der Frage oben genannte versucht, und änderte das ‚Fragment‘ auf einen ‚FrameLayout‘ und ersetzen sie durch SupportMapView zur Laufzeit, aber die Protokolle nicht verschwinden.

var mapFragment = SupportMapFragment.newInstance(); 
    this.childFragmentManager.beginTransaction() 
      .replace(R.id.mapView, mapFragment) 
      .commit(); 

Wie die Fehlerprotokolle zu verhindern?

PS: Wenn ich eine Beispielanwendung erstellte und ein Support-Map-Fragment direkt zur Hauptaktivität hinzufügte, traten die Fehlermeldungen nicht auf. Also ich denke, es hat etwas mit Fragmenten zu tun.

PS2: Es kann nicht mit Fragmenten zusammenhängen, weil ich die Beispiel-App geändert und das Kartenfragment in ein anderes Fragment platziert habe, aber die Protokolle nicht passiert sind. Ich habe einige Dinge ausprobiert, konnte das Problem jedoch nicht in der Beispiel-App reproduzieren.

PS3: Entfernen isMyLocationEnabled = true; löste das Problem, aber ich brauche diese Funktion.

+0

Werden die Protokolle weiterhin angezeigt, wenn Sie die Logcat-Nachrichten so filtern, dass sie nur Ihre Apps enthalten? Die Protokolle sehen aus, als wären sie von einer Systemkomponente, also haben Sie vielleicht keine Kontrolle darüber. –

+0

Nein, wenn ich "Nur ausgewählte Anwendung anzeigen" wähle, werden die Nachrichten nicht angezeigt. Aber als ich eine Beispielanwendung erstellte und das Support-Map-Fragment direkt zur Hauptaktivität hinzufügte, traten die Fehlermeldungen nicht auf. Also ich denke, es hat etwas mit Fragmenten zu tun. –

+0

NMEA ist höchstwahrscheinlich mit dem Protokoll verwandt, das verwendet wird, um mit GPS-Chips zu kommunizieren: https://en.wikipedia.org/wiki/NMEA_0183 Deshalb vermute ich, dass es mit System verbunden ist. Wenn Sie eine Karte ohne Standortberechtigungen und die standortbezogenen Funktionen verwenden (z. B. Deaktivieren des blauen Punkts "Mein Standort"), wird die Nachricht wahrscheinlich nicht mehr angezeigt. Dann benötigen Sie diese Funktionalität natürlich und die Spitze kann nutzlos sein, aber Sie können feststellen, dass dies die Ursache ist. –

Antwort

0

Die Protokolle sehen aus, als ob sie von einer Systemkomponente stammen, Sie haben also keine Kontrolle darüber. NMEA bezieht sich höchstwahrscheinlich auf das Protokoll, das für die Kommunikation mit GPS-Chips verwendet wird. Siehe en.wikipedia.org/wiki/NMEA_0183

Lösung: Wenn Sie eine Karte ohne Location Berechtigungen nutzen und die Lage im Zusammenhang Funktionalitäten (zum Beispiel die „My Location“ blauen Punkt deaktivieren) die Meldung verschwindet. Dann brauchen Sie diese Funktionalität natürlich und die Spitze kann nutzlos sein, aber das ist die Ursache.

Praktische Lösung: Also, wenn ich "Nur ausgewählte Anwendung anzeigen" wählen, werden die Nachrichten nicht angezeigt. Es ist sicher, den Fehler zu ignorieren.

Verwandte Themen