【问题标题】:Google Maps API Android - NullPointerException - setBoundsInParentGoogle Maps API Android - NullPointerException - setBoundsInParent
【发布时间】:2015-04-06 08:44:28
【问题描述】:

在我们的 Android 移动应用程序(兼容 Android 4.0 及更高版本)中,我们使用 Google Maps API V2。

我们从某些设备(Android 版本 4.3、4.4 和 5.0)上收到一些错误报告,在 android.view.accessibility.AccessibilityNodeInfo 类的 setBoundsInParent 方法中出现 NullPointerException。

当用户尝试在地图上移动或缩放时应用程序崩溃。

该问题仅出现在某些用户 - 设备上。我们的大多数客户都没有这个问题。

问题似乎来自于使用 Google Maps API 的 setPadding 方法来定位 Google 徽标,使其在地图上始终清晰可见

@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));
                }
                ...
}

删除对 setPadding 方法的调用似乎可以解决受影响用户的问题,但对我们来说这不是一个有效的解决方案,因为我们需要使用此方法定位 Google 徽标。

我们无法在我们的开发设备上重现此问题,因此我们很难找到此问题的真正根源。

您将在下面找到该错误的完整堆栈跟踪。

有人有想法吗?

非常感谢您的回答。

最好的问候。

Android 4.3 - 4.4 上的 Stacktrace

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)

Android 5.0 上的 Stacktrace

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)

【问题讨论】:

  • 尝试从空对象引用上的字段“int android.graphics.Rect.left”读取。检查您的代码(setBoundsInParent(AccessibilityNodeInfo.java:1012))或附加它们
  • 谢谢,不过这个类不在我们的代码中,而是在Android库的代码中。
  • 你必须检查你的代码,也许你正在使用主 UI 做一些繁重的任务
  • 检查参数int android.graphics.Rect.left处的代码,因为它得到空对象。

标签: java android google-maps nullpointerexception


【解决方案1】:

该错误已被 Google 确认:http://code.google.com/p/gmaps-api-issues/issues/detail?id=7619

最好的问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2023-04-02
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多