我的新Android应用程序的Retrofit存在问题。 我刚刚开始使用Retrofit看它是不是很棒!
我正在使用公共服务 - 它为火车站返回一些x和y坐标: http://stog.itog.dk/itog/action/list/format/json
所以,我有以下几段代码:
火车站 - 每个火车站都有吸气剂和安装者:
private String name;
private int wid;
private double x;
private double y;
接口:
public interface IStogService {
@GET("/itog/action/list/format/json")
List<Train> getStog();
}
在我的活动中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("http://stog.itog.dk")
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
IStogService stogService = restAdapter.create(IStogService.class);
}
运行onCreate的最后一行会使其崩溃。我不知道为什么 - 而且LogCat没有告诉任何好的东西:( 希望那里有任何聪明的人!
注意:我已在AndroidManifest中添加了互联网权限
答案 0 :(得分:1)
您可能会收到NetworkonMainThread异常。在一个单独的线程或AsyncTask中进行改装适配器和调用,因为android不允许在主线程上进行网络调用。
public class Backend extends AsyncTask<MainActivity,Integer,String> {
@Override
protected String doInBackground(MainActivity... params) {
try{
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("http://stog.itog.dk")
.build();
IStogService stogService = restAdapter.create(IStogService.class);
// Make calls and store in string
}
catch(Exception e)
{
Log.d("O Noes " +e);
}
}
@Override
protected void onPostExecute(String k)
{
}
}
答案 1 :(得分:0)
我能够通过将gson.jar添加到libs文件夹来解决这个问题。