java - android ArrayMap 抛出 java.lang.ClassCastException : java. lang.String 无法转换为 java.lang.Object[]

标签 java android

我使用android.support.v4.util.ArrayMap

像这样

ArrayMap<String, ArrayList<Object>> group = new ArrayMap<>();

但我调用ArrayMap.put(key,value)

allocArrays(final int size) 方法中抛出 ClassCastException

 private void allocArrays(final int size) {
    if (size == (BASE_SIZE*2)) {
        synchronized (ArrayMap.class) {
            if (mTwiceBaseCache != null) {
                final Object[] array = mTwiceBaseCache;
                mArray = array;
                mTwiceBaseCache = (Object[])array[0];
                mHashes = (int[])array[1];
                array[0] = array[1] = null;
                mTwiceBaseCacheSize--;
                if (DEBUG) Log.d(TAG, "Retrieving 2x cache " + mHashes
                        + " now have " + mTwiceBaseCacheSize + " entries");
                return;
            }
        }
    } else if (size == BASE_SIZE) {
        synchronized (ArrayMap.class) {
            if (mBaseCache != null) {
                final Object[] array = mBaseCache;
                mArray = array;
                mBaseCache = (Object[])array[0];
                mHashes = (int[])array[1];
                array[0] = array[1] = null;
                mBaseCacheSize--;
                if (DEBUG) Log.d(TAG, "Retrieving 1x cache " + mHashes
                        + " now have " + mBaseCacheSize + " entries");
                return;
            }
        }
    }

    mHashes = new int[size];
    mArray = new Object[size<<1];
}

应用程序在此行崩溃mBaseCache = (Object[])array[0];

非常感谢!

最佳答案

问题的原因是多线程。

此错误已修复 https://issuetracker.google.com/issues/37114373 更新支持V25.4.0已修复

关于java - android ArrayMap 抛出 java.lang.ClassCastException : java. lang.String 无法转换为 java.lang.Object[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39343332/

相关文章:

java - Android studio 中的 Android 注解 - 无法访问 Activity_?

android - Textview 未根据 pageradapter 内的位置进行更新

java - 使用内部框架时,主面板重新喷漆无法正常工作

java - 尝试在 websphere 8.5.5.13 上部署 ear 时出现 AnnotationException?

java - 如何在 gwt 中管理 Mysql 图像响应?

android - 请求 MTU 在牛轧糖中不起作用

android - NFC - 读/写设备之间的通信

java - 监视 Java 应用程序上的锁争用

Java - 重载和覆盖

java - 如何从设备的菜单中隐藏应用程序图标?