java - Protobuf + java java.lang.IndexOutOfBoundsException : Invalid index 0, 大小为 0

标签 java android protocol-buffers

if (hashTags!=null && hashTags.size()>0) {
        for (int i = 0; i<hashTags.size();i++){
        getPostsRequestBuilder.setTags(i, hashTags.get(i));                         
        }
    }

现在,hashTags 是一个 ArrayList<String>它不是空的,所以问题不在于此。 protobuf 中的标签是一个重复的字符串。 所以,如果我删除 getPostsRequestBuilder.setTags 并且什么都不做 - 程序不会崩溃,所以问题就在于此。它在第一个 (0) 元素上崩溃

12-22 15:24:25.390: E/AndroidRuntime(6252): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
12-22 15:24:25.390: E/AndroidRuntime(6252):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
12-22 15:24:25.390: E/AndroidRuntime(6252):     at java.util.ArrayList.set(ArrayList.java:481)
12-22 15:24:25.390: E/AndroidRuntime(6252):     at com.google.protobuf.LazyStringArrayList.set(LazyStringArrayList.java:119)
12-22 15:24:25.390: E/AndroidRuntime(6252):     at com.google.protobuf.LazyStringArrayList.set(LazyStringArrayList.java:1)
12-22 15:24:25.390: E/AndroidRuntime(6252):     at protobuf.shrick.Shrick$GetPostsRequest$Builder.setTags(Shrick.java:20845)
12-22 15:24:25.390: E/AndroidRuntime(6252):     at pro.shrick.asynctasks.SearchRequest.doInBackground(SearchRequest.java:29)
12-22 15:24:25.390: E/AndroidRuntime(6252):     at pro.shrick.asynctasks.SearchRequest.doInBackground(SearchRequest.java:1)

最佳答案

您应该只使用set* 方法来覆盖当前在重复字段中的值。您的重复字段当前为空,因此没有要覆盖的第 0 个元素。

使用add* 方法向重复字段添加新值:

getPostsRequestBuilder.addTags(hashTags.get(i));

关于java - Protobuf + java java.lang.IndexOutOfBoundsException : Invalid index 0, 大小为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34415950/

相关文章:

android - OpenCV4Android 示例应用程序 - 此代码 fragment 的作用是什么?

Python protobuf gRPC 生成一个不存在的依赖

protocol-buffers - 自定义协议(protocol)插件解析不适用于自定义选项

java - 生产服务器中的 tomcat 超出了 GC 开销限制

java - 无法在预集成测试阶段启动 Jetty

java - 尝试构建 Mave(使用 M2E)出现 classdef 错误

java - Android 媒体播放器的速度控制

android - 在 Android 上模糊图像中的区域(在 Java 中)

java - 缺少Android Studio中的所有资源样式,意外删除了-AAPT2错误:查看日志以了解详细信息

ios - 如何不卡住 UI 并等待响应?