为了账号安全,请及时绑定邮箱和手机立即绑定

带有改造库的 nullPointerException

带有改造库的 nullPointerException

四季花海 2022-05-12 15:09:42
我正在使用改造来访问 API,但我无法获取此 API 的数据API 链接我能够使我的代码与这个 API 一起工作:(这个),但是当我重做代码以使用前一个代码时,我在我用来显示结果的第一行的 ActivityMain 中得到了 nullPointer 错误。代码:MainActivity:public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    Retrofit retrofit = new Retrofit.Builder()            .baseUrl(UdacityService.BASE_URL)            .addConverterFactory(GsonConverterFactory.create())            .build();    UdacityService service = retrofit.create(UdacityService.class);    Call<CharacterCatalog> requestCatalog = service.listCatalog();    requestCatalog.enqueue(new Callback<CharacterCatalog>() {        @Override        public void onResponse(Call<CharacterCatalog> call, Response<CharacterCatalog> response) {            if(!response.isSuccessful()){                Log.e("ERRO", "Erro no servidor (" + response.code() + ")");            }            else {                CharacterCatalog catalog = response.body();                for (Result c : catalog.results){                    Log.i("RESULT", String.format("id; %s, name: %s\n",c.id, c.name));                    for (Origin o : c.origins){                        Log.i("RESULT", String.format("nome; %s, url: %s\n",o.name, o.url));                    }                    Log.i("RESULT", "/////////////////////////////////////////");                }            }        }        @Override        public void onFailure(Call<CharacterCatalog> call, Throwable t) {            Log.e("ERRO", "Verifique a conexão com a internet (" + t.getMessage() + ")");        }    });}}Interface retofit:public interface ApiService {public static final  String BASE_URL = "https://rickandmortyapi.com/api/";@GET("character")Call<CharacterCatalog> listCatalog();}列出结果:public class CharacterCatalog {public List<Result> results;}有人可以帮我解决这个错误吗?
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

请确认您已为您的数据类使用此格式


@SerializedName("id")

private Integer id;

@SerializedName("name")

private String name;

@SerializedName("status")

private String status;

@SerializedName("species")

private String species;

@SerializedName("type")

private String type;

@SerializedName("gender")

private String gender;

@SerializedName("origin")

private Origin origin;

@SerializedName("location")

private Location location;

@SerializedName("image")

private String image;

@SerializedName("episode")

private List<String> episode = null;

@SerializedName("url")

private String url;

@SerializedName("created")

private String created;

检查此 URL 以创建 POJOS: http: //www.jsonschema2pojo.org/ 请确保您实际连接到服务器,请确认您从服务器获得 200 答案


查看完整回答
反对 回复 2022-05-12
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

感谢大家的帮助,但我解决了这个问题......在我的课堂结果中,我使用了一个来源列表,但 API 只返回一个对象......我只删除了 List 类型。



查看完整回答
反对 回复 2022-05-12
  • 2 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信