Java 改造安卓系统获得响应

Java 改造安卓系统获得响应,java,android,api,retrofit,Java,Android,Api,Retrofit,我刚开始学习ROS和改装。有谁能帮助我或者指出它导致我这个错误的原因吗,基本上我想在硬件json下获取名称和状态。我不确定我的错误是否来自POJO模型 在您的ObjectList`中,创建一个getter以从硬件数组中获取字符串: public String getHardwareString() { String result = ""; for (int i=0; i<hardware.length; i++) { Object item = hardw

我刚开始学习ROS和改装。有谁能帮助我或者指出它导致我这个错误的原因吗,基本上我想在硬件json下获取名称和状态。我不确定我的错误是否来自POJO模型

在您的
ObjectList`中,创建一个getter以从硬件数组中获取字符串:

public String getHardwareString() {
    String result = "";
    for (int i=0; i<hardware.length; i++) {
        Object item = hardware[i];
        result += item.name
    }
    return result;
}

在您的
ObjectList`中,创建一个getter以从硬件数组中获取字符串:

public String getHardwareString() {
    String result = "";
    for (int i=0; i<hardware.length; i++) {
        Object item = hardware[i];
        result += item.name
    }
    return result;
}
E/main操作:response com.nera.rosbridgeclient.messages.robot_msgs。ObjectList@cea25bf 硬件[Lcom.nera.rosbridgeclient.messages.robot\u msgs.Object;@7ec748c

这不是
错误/异常
,而是您的
日志消息

Log.e(“mainAction”、“hardware”+response.body().getHardware().toString());

上面的一行生成
错误日志

原因:

response.body().getHardware()`

上行将
返回
一个
硬件
数组
。表示
硬件数组
实例/对象

因此,当您将
toString()
用于
实例/对象时

response.body().getHardware().toString()

它将把
实例
作为
字符串
提供给您

解决方案:

您将得到一个
数组
硬件
作为响应

@Override
public void onResponse(Call<ObjectList> call, Response<ObjectList> response) {
       StringBuilder sb = new StringBuilder(); // add this line

       for(int i=0; i<response.body().getHardware().length; i++){
           Log.e(" mainAction", "  hardware"+ response.body().getHardware()[i].name);

           sb.append(response.body().getHardware()[i].name)); // here we append each hardware name to our string builder.
           sb.append(" "); // here we append a space separator after every hardware name, you can use whatever you want(like: newline[\n] or coma[,]).
       }
       textviewhardware.setText(sb.toString()); // now textview will show every hardware name.
}
@覆盖
公共void onResponse(调用、响应){
StringBuilder sb=新建StringBuilder();//添加此行
对于(int i=0;i
E/main操作:response com.nera.rosbridgeclient.messages.robot_msgs。ObjectList@cea25bf
硬件[Lcom.nera.rosbridgeclient.messages.robot\u msgs.Object;@7ec748c

这不是
错误/异常
,而是您的
日志消息

Log.e(“mainAction”、“hardware”+response.body().getHardware().toString());

上面的一行生成
错误日志

原因:

response.body().getHardware()`

上行将
返回
一个
硬件
数组
。表示
硬件数组
实例/对象

因此,当您将
toString()
用于
实例/对象时

response.body().getHardware().toString()

它将把
实例
作为
字符串
提供给您

解决方案:

您将得到一个
数组
硬件
作为响应

@Override
public void onResponse(Call<ObjectList> call, Response<ObjectList> response) {
       StringBuilder sb = new StringBuilder(); // add this line

       for(int i=0; i<response.body().getHardware().length; i++){
           Log.e(" mainAction", "  hardware"+ response.body().getHardware()[i].name);

           sb.append(response.body().getHardware()[i].name)); // here we append each hardware name to our string builder.
           sb.append(" "); // here we append a space separator after every hardware name, you can use whatever you want(like: newline[\n] or coma[,]).
       }
       textviewhardware.setText(sb.toString()); // now textview will show every hardware name.
}
@覆盖
公共void onResponse(调用、响应){
StringBuilder sb=新建StringBuilder();//添加此行

对于(int i=0;iYou应该发布完整的错误日志,而不是仅发布两行错误日志。)it@DuyKhanhNguyen这是我的logcat中显示的唯一错误。其他错误与我的设备的运行系统有关。是否可以尝试重命名模型?
对象是java中已定义的名称,因此可能会导致错误导入。@DuyKhanhNguyen我尝试过已经但仍然不走运。我认为错误来自这个命令
Log.e(“mainAction”,“hardware”+response.body().getHardware().toString());
。这不是一个真正的错误。您应该发布完整的错误日志,而不是仅仅发布两行错误日志it@DuyKhanhNguyen这是我的logcat中显示的唯一错误。其他错误与我的设备的运行系统有关。是否可以尝试重命名模型?
对象是java中已定义的名称,因此可能导致错误导入。@DuyKhanhNguyen我已经试过了,但仍然没有成功。我认为错误来自于这个命令
Log.e(“main操作”,“硬件”+response.body().getHardware().toString());
。这不是一个真正的错误。如果我想在一个代码中显示它们,而不是逐个声明它们呢。在这行代码中:textviewhardware.setText(response.body()).getHardware()[0].name);@YenBico查看我更新的答案(最后一部分是解决方案部分)。如果这个答案对您有帮助,请不要忘记投票。
快乐编码。
。如果我想在一个代码中显示它们,而不是逐个声明它们,该怎么办。在这行代码中:textviewhardware.setText(response.body().getHardware()[0].name);@YenBico查看我更新的答案(最后一部分是解决方案部分)。如果这个答案对您有帮助,请不要忘记投票。
快乐编码