我正在使用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);
这是做到这一点的方式还是我错过了什么?
答案 0 :(得分:1)
当模型实例的验证失败时,LoopBack会返回HTTP错误422 Unprocessable Entity
。当请求主体中未包含必填字段(属性)时,通常会发生这种情况。
请扩展您的问题并添加ProbeInstallation
模型的LDL定义。
另请注意,LocalInstallation
的当前实现并不完全支持扩展,因为save
方法始终使用/installations
URL并且无法配置URL。当然,这可以很容易地改进,随意打开GitHub问题,甚至可以发送拉取请求。
免责声明:我是loopback-sdk-android的主要开发者