处理异步线程队列异常java.lang.UnsupportedOperationException。

3

当我创建一个字符串数组时,遇到了问题。这只发生在2.1 Android API Level 7或更低版本的情况下,而我需要在具有完全相同配置的设备上安装应用程序。您有什么解决方法吗?

以下是源代码、屏幕上弹出的消息以及logcat的信息:



private String[] fillPedidosName() {
    TipoPedidoDAO tipoDAO = null;
    try {
        tipoDAO = new TipoPedidoDAO();
        pedidosList = tipoDAO.selectAll();
            String[] temp = new String[pedidosList.size()];
        for (int i = 0; i < pedidosList.size(); i++) {
            if (pedidosList.get(i) != null) {
                temp[i] = pedidosList.get(i).getDescricao().toString();
            }
        }
        return temp;
    } catch (Exception ex) {
        MyLoger.logar(ex);
        return null;
    } finally {
        if (tipoDAO.getDB().isOpen()) {
            tipoDAO.closeConnection();
        }
    }
}

出现调试信息:

异步线程队列异常处理 异步线程队列异常处理 java.lang.UnsupportedOperationException

日志消息:

03-03 17:57:57.124: ERROR/jdwp(1267): REQ: UNSUPPORTED (cmd=2/11 dataLen=8 id=0x0012ba)


请记得将答案标记为正确的,这会鼓励其他人在未来回答您的问题。 - Matthew
2个回答

0

我遇到了这个问题。我已经解决了。 在使用你的对象数组时,请确保你在对象文件中定义了一个构造函数。

这段代码导致了错误。

List<Prediction> predictions = new ArrayList<Prediction>();

修复方法: Prediction类文件缺少构造函数。加入默认构造函数后,该错误已经消失。
包:com.thuptencho.torontotransitbus.models;
public class Prediction {
    public String epochTime = "", seconds = "", minutes = "", isDeparture = "", affectedByLayover = "", branch = "",
            dirTag = "", vehicle = "", block = "", tripTag = "";
    //this constructor was missing..after coding this constructor. the error was gone.
    public Prediction(){
        super();
    }
    @Override
    public String toString() {
        return "epochTime:" + this.epochTime + " seconds:" + this.seconds + " minutes:" + this.minutes
                + " isDeparture:" + this.isDeparture + " affectedByLayover:" + this.affectedByLayover + " branch:"
                + this.branch + " dirTag:" + this.dirTag + " vehicle:" + this.vehicle + " block:" + this.block
                + " triptag:" + this.tripTag;
    }
}

为什么构造函数很重要? - JohnyTex

0

你可能没有使用支持get(int)的List。

尝试将你的List实现更改为ArrayList。当你创建你的List时:

List myList = new ArrayList()

这可能发生在tipDAO.selectAll()内部。


谢谢Matthew,但那不是问题所在,我已经切换到ArrayList了,但仍然存在同样的问题。问题出现在当我实例化一个新的String时(String [] temp = new String [pedidosList.size ()];),非常奇怪... - cristianchiess
可能有助于展示您的.selectAll()代码以及有关pedidosList的更多信息。 - Matthew
在get(i)和.selectAll()上,马修给出了他的评论。我进行了一些测试,结果发现.selectAll()返回一个Citie名称的ArrayList,用于spinner中让用户选择名称以进行购买。我添加了两个字符串"选择城市"和"所有城市",但当我删除这两个字符串时,一切都正常了...如果没有你的评论,我将浪费太多时间来解决这个问题。谢谢你,马修... - cristianchiess
当我在 Android 设备上远程调试并尝试从调试器内联执行一些代码时,我看到了“REQ:UNSUPPORTED”这个提示,不确定为什么会出现这种情况...我不认为这里的答案是正确的。 - satur9nine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接