'内部客户异常'是什么原因?在Backendless?

时间:2017-02-23 19:25:11

标签: backendless

我有桌子任务: enter image description here

我想在此表中获取记录。但是有一个BackendlessException { code: 'Internal client exception', message: 'null' }

这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_task);

    Backendless.initApp(getApplicationContext() ,APP_ID, SECRET_KEY, VERSION);


    BackendlessCollection<Task> tasks = Backendless.Data.of(Task.class).find();

    System.out.println( "Size " + tasks.getCurrentPage().size() );


    Iterator<Task> iterator = tasks.getCurrentPage().iterator();

    while (iterator.hasNext())
    {
        Task t = iterator.next();
        System.out.println("Question = " + t.getQuestion());
        System.out.println("Answer =  " + t.getAnswer());
    }





}

Task.class:

   public class Task {
    public String Question ;
    public  String Answer ;
    public  String ownerId ;
    public    String objectId ;
    public   Date created ;
    public Date updated ;
    public Task()
    {

    }
    public Task(String Question ,String Answer)
    {
        this.Question = Question ;
        this.Answer = Answer ;

    }




}

我从Backendless文档中学到了这个查询。这个错误的原因是什么?如何避免此错误?在从Backedless检索数据之前是否需要了解一些规则?

1 个答案:

答案 0 :(得分:0)

您正在主UI空间线程上调用同步(阻塞)API:

BackendlessCollection<Task> tasks = Backendless.Data.of(Task.class).find();

要避免错误,请创建一个单独的线程并在其中使用API​​,或将调用更改为异步版本。

API documentation说:

  

Android应用程序无法在主UI上使用同步API   线。原因是主线程不允许阻塞   调用。由于API请求执行基于网络的通信,因此   自然阻止。因此,在使用Backendless API时   一定要使用方法的异步版本,或者创建一个新的   线程并在其中使用同步API