2015-02-06 19 views
5

In unserer Android-Mobilanwendung (kompatibel mit Android-Versionen 4.0 und höher) verwenden wir Google Maps API V2.Google Maps API Android - NullPointerException - setBoundsInParent

Wir erhalten einige Fehlerberichte von Benutzern auf einigen Arten von Geräten (Android-Versionen 4.3, 4.4 und 5.0) mit einer NullPointerException in der setBoundsInParent-Methode der android.view.accessibility.AccessibilityNodeInfo-Klasse.

Die Anwendung stürzt ab, wenn der Benutzer versucht, die Karte zu verschieben oder zu vergrößern.

Das Problem tritt nur für einige Benutzer - Geräte. Die meisten unserer Kunden haben dieses Problem nicht.

Das Problem scheint sich aus der Verwendung des setPadding Methode von Google Maps API zu kommen, das Google-Logo zu positionieren, so dass es immer gut sichtbar auf der Karte ist:

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
       ... 
     // Initialize map 
     ...  
     // Sets the padding for the map 
       if(mMap!=null) 
       { 
        mMap.setPadding(0, DPI.toPixels(100), 0, DPI.toPixels(100)); 
       } 
       ... 
} 

den Anruf an das Entfernen Die setPadding-Methode scheint das Problem für betroffene Benutzer zu lösen, ist aber für uns keine gültige Lösung, da wir das Google-Logo mit dieser Methode positionieren müssen.

Wir können dieses Problem nicht auf unseren Entwicklungsgeräten reproduzieren, daher ist es schwierig für uns, den wahren Ursprung dieses Problems zu finden.

Sie finden die vollständigen Stacktraces des Fehlers unten.

Hat jemand eine Idee?

Vielen Dank im Voraus für Ihre Antwort.

Mit freundlichen Grüßen.

Stacktrace auf Android 4.3 - 4,4

java.lang.NullPointerException 
at android.view.accessibility.AccessibilityNodeInfo.setBoundsInParent(AccessibilityNodeInfo.java:1012) 
at android.support.v4.view.a.k.c(SourceFile:819) 
at android.support.v4.view.a.i.b(SourceFile:1850) 
at com.google.maps.api.android.lib6.c.et.a(Unknown Source) 
at android.support.v4.widget.ab.a(SourceFile:56) 
at android.support.v4.widget.ac.a(SourceFile:717) 
at android.support.v4.view.a.x.a(SourceFile:112) 
at android.support.v4.view.a.ad.createAccessibilityNodeInfo(SourceFile:42) 
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:724) 
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:147) 
at android.view.AccessibilityInteractionController.access$300(AccessibilityInteractionController.java:49) 
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:971) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5212) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
at dalvik.system.NativeStart.main(Native Method) 

Stacktrace auf Android 5,0

java.lang.NullPointerException: Attempt to read from field 'int android.graphics.Rect.left' on a null object reference 
at android.view.accessibility.AccessibilityNodeInfo.setBoundsInParent(AccessibilityNodeInfo.java:1316) 
at android.support.v4.view.a.k.c(SourceFile:819) 
at android.support.v4.view.a.i.b(SourceFile:1850) 
at com.google.maps.api.android.lib6.c.et.a(Unknown Source) 
at android.support.v4.widget.ab.a(SourceFile:56) 
at android.support.v4.widget.ac.a(SourceFile:717) 
at android.support.v4.view.a.x.a(SourceFile:112) 
at android.support.v4.view.a.ad.createAccessibilityNodeInfo(SourceFile:42) 
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:894) 
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:155) 
at android.view.AccessibilityInteractionController.access$400(AccessibilityInteractionController.java:53) 
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:1236) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
+0

Versuch, aus dem Feld 'int android.graphics.Rect.left' für eine Nullobjektverweisliste zu lesen. Überprüfen Sie Ihre Codes (setBoundsInParent (AccessibilityNodeInfo.java:1012)) oder fügen Sie sie an – Xcihnegn

+0

Vielen Dank, aber diese Klasse ist nicht in unserem Code, sondern im Code einer Android-Bibliothek. –

+0

Sie müssen Ihre Codes überprüfen, vielleicht verwenden Sie die Hauptbenutzeroberfläche, um einige schwere Aufgaben zu erledigen – Xcihnegn

Antwort