尝试在google maps V2 android应用程序中获取空数组的长度

尝试在google maps V2 android应用程序中获取空数组的长度,android,google-maps,Android,Google Maps,我目前正在使用谷歌地图api开发一个android应用程序,有时我会无缘无故地遇到一个奇怪的崩溃(在我看来)。以下是崩溃日志: 12-02 16:38:57.071 20796-21137/com.appsolute.ParkYoo E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 4623 Process: com.appsolute.ParkYoo, PID: 20796 java.lang.NullPointerException:

我目前正在使用谷歌地图api开发一个android应用程序,有时我会无缘无故地遇到一个奇怪的崩溃(在我看来)。以下是崩溃日志:

12-02 16:38:57.071  20796-21137/com.appsolute.ParkYoo E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 4623
    Process: com.appsolute.ParkYoo, PID: 20796
    java.lang.NullPointerException: Attempt to get length of null array
            at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:399)
            at java.nio.ByteBufferAsShortBuffer.put(ByteBufferAsShortBuffer.java:159)
            at com.google.maps.api.android.lib6.gmm6.o.c.a.d.d(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.c.a.d.a(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.a.a(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.c.b(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.c.a(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.l.a(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.l.b(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.cw.k(Unknown Source)
            at com.google.maps.api.android.lib6.gmm6.o.cw.run(Unknown Source)
正如您所看到的,崩溃发生在google api中,但代码已被混淆,因此除了前两行之外,我没有更多关于这方面的信息:

final void put(short[] src, int srcOffset, int shortCount) {
    checkIsAccessible();
    int byteCount = checkPutBounds(SizeOf.SHORT, src.length, srcOffset, shortCount); // here is the error
    this.block.pokeShortArray(offset + position, src, srcOffset, shortCount, order.needsSwap);
    position += byteCount;
  }

@Override
    public ShortBuffer put(short[] src, int srcOffset, int shortCount) {
        byteBuffer.limit(limit * SizeOf.SHORT);
        byteBuffer.position(position * SizeOf.SHORT);
        if (byteBuffer instanceof DirectByteBuffer) {
            ((DirectByteBuffer) byteBuffer).put(src, srcOffset, shortCount);
        } else {
            ((ByteArrayBuffer) byteBuffer).put(src, srcOffset, shortCount);
        }
        this.position += shortCount;
        return this;
    }
有人遇到过这个错误吗?我做错了什么?如果有人对这个问题有见解,我很乐意讨论


谢谢

您可能正在运行多个地图片段。请参阅我写的关于谷歌地图库中这个致命错误的文章,关于多个地图片段,以及我是如何找到解决方法的


并且正在为谷歌Play服务的下一个版本排定优先级

那么,在你的代码中显示你在做什么怎么样?嗨,谢谢你的回答。正如我所说,这不会发生在我的代码中,而是发生在maps库代码中。无论如何,我很想给你看我的代码,但是你想看什么?目前,我在tabbed活动中设置了两个谷歌地图。我也遇到了同样的崩溃,但以前没有发生过。你正在用棒棒糖运行你的应用程序吗?我在想这和我有关系。是的,我的应用程序运行在棒棒糖上,但我的Nexus4也运行在KitKat(4.4.4)上,并且运行在dalvik运行时。对我来说仍然是个谜…在Crashlytics中为我的5.1和6.0.1活体设备应用程序报告了这个问题,而且偶尔也会报告。而且我从来没有能够重现我的眼睛,事实上我在一个视图寻呼机上运行两张地图。一开始我以为我没有像我应该的那样初始化我的地图片段。我一定会调查你的解决办法。谢谢你的回答。差不多三年过去了,但仍然没有解决。谷歌似乎还没有研究这个问题<代码>表格布局,
在这种情况下不建议使用查看页面
。替换片段应该能起作用。Android 9.0和androidx lib仍在使用,Android10和androidx lib与kotlin仍在使用