Итак, у меня есть приложение, которое извлекает информацию из API с помощью модификации в качестве библиотеки. Я думал, что все это работает, но всякий раз, когда я запустить приложение я получаю исключения нулевого указателя и сбои приложений, и я не уверен, почему:Неустранимая исключение при запуске моего приложения (дооснащение)?
интерфейс, который строит дооснащения:
public interface FriendsAPI {
static final String URL = "https://www.cs.kent.ac.uk/";
@GET("https://www.cs.kent.ac.uk/people/staff/iau/LocalUsers.php")
Call<User> getFriends();
class Factory {
private static FriendsAPI service;
public static FriendsAPI getInstance() {
if (service == null) {
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(URL)
.build();
return service;
} else {
return service;
}
}
}
}
Хранит JSON массив в список:
public class FriendsInfo {
@SerializedName("Users")
@Expose
private List<User> Users = new ArrayList<User>();
/**
*
* @return
* The Users
*/
public List<User> getUsers() {
return Users;
}
/**
*
* @param Users
* The Users
*/
public void setUsers(List<User> Users) {
this.Users = Users;
}
}
Наконец, где я звоню его (и код, который вызывает фатальное исключение, хотя я не знаю, почему):
public void populateFriends(){
FriendsAPI.Factory.getInstance().getFriends().enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
String tempLat = response.body().getLat();
String tempLon = response.body().getLon();
tLat = Double.parseDouble(tempLat);
tLon = Double.parseDouble(tempLon);
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Log.e("Failed :(",t.getMessage());
}
});
}
Я думаю, что я включил весь соответствующий код, но если что-то не хватает, я могу опубликовать его здесь. У меня также есть более полная версия проекта на Github.
Спасибо заранее, ребята.
Вы уверены, что 'tempLat' &' tempLon' не 'null'? Вы должны добавить проверку «null», прежде чем разбирать ее, чтобы удвоить. – user2004685
Хмм, я добавлю чек сейчас, но я не уверен, почему они возвращают null, если это так, разве они не должны возвращать значения из API? – Cypher236
Это может быть ответ, но тогда вам придется это проверить. Кроме того, вам нужно убедиться, что вы правильно разобрали полученный ответ. – user2004685