gpt4 book ai didi

java - 致命异常。使用Retrofit2-beta3无法使用retrofit2从apiUrl检索数据

转载 作者:太空宇宙 更新时间:2023-11-04 13:02:47 24 4
gpt4 key购买 nike

我一直在做this tutorial使用 Android Studio IDE。

我遇到的问题是本教程是使用较旧的 gson 库和 Retrofit 1.8.0 完成的...

我一直很好地关注了retrofit2.0-beta3,直到我遇到了这个我似乎无法解决的错误..

enter image description here

它与这一行有关...(这一行位于我的MainActivity.Java中的onCreate()下)

SCService scService = SoundCloud.getService();
scService.getRecentTracks(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()), new Callback<List<Track>>() {
@Override
public void onResponse(Response<List<Track>> tracks) {
Log.d("TAG", "ONRESPONSE() - -- - some else wrong");
// response.isSuccess() is true if the response code is 2xx
if (tracks.isSuccess()) {
Log.d("TAG", "ONRESPONSE()_isSuccess? - -- - some else wrong");
List<Track> track = tracks.body();
loadTracks(track);
} else {

Log.d("TAG", "some else wrong");
}
}

@Override
public void onFailure(Throwable t) {
// handle execution failures like no internet connectivity
Log.d("Error", t.getMessage());
}
});

所以我认为问题始于 scService 接口(interface)..

import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.http.GET;
import retrofit2.http.Query;
interface SCService {

@GET("tracks?client_id=" + Config.CLIENT_ID)
public void getRecentTracks(@Query("created_at[from]") String date, Callback<List<Track>> cb);
}

这是我的 Soundcloud 类(class)......

import retrofit2.Retrofit;
import retrofit2.Retrofit;
public class SoundCloud {
private static final Retrofit REST_ADAPTER = new Retrofit.Builder().baseUrl(Config.API_URL).build();
private static final SCService SERVICE = REST_ADAPTER.create(SCService.class);

public static SCService getService() {
return SERVICE;
}

}

这是 Config 类,我认为不需要它......

public class Config {

public static final String CLIENT_ID = "c85f6828ae5eaf5981937ead09ef1b45";
public static final String API_URL = "https://api.soundcloud.com/";
}

我一整天都在做这件事,任何帮助将不胜感激..

<小时/>

最佳答案

这可能是几件事,但最有可能的问题是 Gson 转换器不再自动注册 Retrofit,因此您的代码不知道如何从 Json 获取对象。 IE。在retrofit2中你需要注册Gson,如下所示:

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://api.nuuneoi.com/base/")
.addConverterFactory(GsonConverterFactory.create(gson))
.build();

看看这篇文章:Retrofit 2 changes, Custom Gson Object (in the middle of the page)

关于java - 致命异常。使用Retrofit2-beta3无法使用retrofit2从apiUrl检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34791973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com