我一直在尝试在我的应用程序中应用RetroFit REST客户端,并且遇到了一个我似乎无法解决的问题。我尝试下载一个.json文件(services.hanselandpetal.com/feeds/flowers.json),并在几秒钟的下载后不断收到一个stackoverflow错误:Retrofit在堆栈大小错误中导致GET结果,1036 KB
“com.dbflowtest.MainActivity:retrofit.RetrofitError:stack大小1036KB“。
下面是我使用的代码:
FlowerAPI.java
public interface FlowerAPI {
@GET("/feeds/flowers.json")
public void getFeed(Callback<List<Flower>> response);
}
MainActivity.java
private void requestFlowers() {
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(ENDPOINT)
.build();
FlowerAPI api = adapter.create(FlowerAPI.class);
api.getFeed(new Callback<List<Flower>>() {
@Override
public void success(List<Flower> flowers, Response response) {
Log.d(TAG, "Received flowers.")
}
@Override
public void failure(RetrofitError error) {
Log.d(TAG, error.toString());
}
});
}
Flower.java
@Table(databaseName = AppDatabase.NAME)
public class Flower extends BaseModel {
@Column(columnType = Column.PRIMARY_KEY)
public int productId;
@Column
public String category;
@Column
public double price;
@Column
public String instructions;
@Column
public String photo;
@Column
public String name;
private List<Flower> flowers;
public Flower() {}
public Flower(int productId, String category, double price, String instructions, String photo, String name) {
this.productId = productId;
this.category = category;
this.price = price;
this.instructions = instructions;
this.photo = photo;
this.name = name;
}
public List<Flower> getFlowers() {
if(flowers == null) {
flowers = new Select()
.from(Flower.class)
.queryList();
}
return flowers;
}
}
我似乎无法来解决这个问题。任何帮助非常感谢,因为我真的很想使用这个框架:)。
解决
出于某种原因,当我使用POJO两个改造和DBFlow我得到这个堆栈大小问题。因此,我没有创建1个Flower.java类,而是创建了另一个名为FlowerDB.java。这解决了我的问题!
是错误堆栈溢出或堆栈大小?我只是测试了这个代码,它的工作原理。我认为你需要发布花类。 – inmyth
谢谢你测试它。我刚刚发布了我的Flower.java类。我认为唯一相关的领域是属性。注释是针对DBFlow的。并回答你的问题,我得到一个堆栈大小的问题,而不是一个stackoverflow :)。 –
它仍然有效。如果删除所有注释,该怎么办?你有没有尝试调用不同的API? – inmyth