strongloop loopback android sdk扩展安装类

时间:2014-11-16 19:57:53

标签: strongloop

我正在使用loopback android sdk示例并尝试在android SDK中扩展Installation Class以向安装添加更多属性。但是当我添加一个新属性时,它会给我以下错误。

11-16 20:51:33.207    4339-4339/com.google.android.gcm.demo.app E/GCM Demo﹕ Cannot save Installation
org.apache.http.client.HttpResponseException: Unprocessable Entity
        at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:235)
        at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:79)
        at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:95)
        at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:57)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:841)

我这样做的方式是,

public class CustomInstallation extends LocalInstallation {


public static final java.lang.String DEVICE_IMEI= "imei";
private String imeiNumber;


public ProbeInstallation(Context applicationContext, RestAdapter loopbackAdapter) {
    super(applicationContext, loopbackAdapter);
}

public String getImeiNumber() {
    return imeiNumber;
}

public void setImeiNumber(String imeiNumber) {
    this.imeiNumber = imeiNumber;
}}

在我的MainActivity中,我只是将它用作,

   final CustomInstallation installation =  new CustomInstallation(context, adapter);

这是做到这一点的方式还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

当模型实例的验证失败时,LoopBack会返回HTTP错误422 Unprocessable Entity。当请求主体中未包含必填字段(属性)时,通常会发生这种情况。

请扩展您的问题并添加ProbeInstallation模型的LDL定义。

另请注意,LocalInstallation的当前实现并不完全支持扩展,因为save方法始终使用/installations URL并且无法配置URL。当然,这可以很容易地改进,随意打开GitHub问题,甚至可以发送拉取请求。

免责声明:我是loopback-sdk-android的主要开发者