java.lang.NullPointerException: попытка чтения из поля FCMResponce.success 'для пустой ссылки на объект - PullRequest
0 голосов
/ 18 марта 2019

как решить эту ошибку

java.lang.NullPointerException: Attempt to read from field 'int com.ddu.d_ride_customer.Model.FCMResponce.success' on a null object reference

FCMClient class

public class FCMClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseURL)
{
    if(retrofit == null)
    {
        retrofit = new Retrofit.Builder()
                .baseUrl(baseURL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    return retrofit;
  }
}

пример кода, который генерирует ошибку

   mService.sendMessage(content)
                                .enqueue(new Callback<FCMResponce>() {
                                    @Override
                                    public void onResponse(Call<FCMResponce> call, Response<FCMResponce> response) {
                                        if(response.isSuccessful() && response.body()!=null) {
                                            Toast.makeText(Home.this, "Request sent!", Toast.LENGTH_SHORT).show();
                                        }
                                        else
                                            Toast.makeText(Home.this, "Failed", Toast.LENGTH_SHORT).show();
                                    }

1 Ответ

0 голосов
/ 18 марта 2019

Вы используете Gson в .addConverterFactory (GsonConverterFactory.create ()), поэтому вам также потребуется интерфейс для Retrofit, прежде чем вы вернете его.У вас должен быть интерфейс, который анализирует ответ.Так, например, gsonInterface (случайное имя), который может использовать ответ https://square.github.io/retrofit/ (Пример из дооснащения GitHub: открытый интерфейс

public interface GitHubService {
  @GET("users/{user}/repos")
  Call<List<Repo>> listRepos(@Path("user") String user);
}

) И затем, прежде чем возвращать ретрофит gsonInterface = retrofit.create (gsonInterafce.class);Или закомментируйте строку .addConverterFactory (GsonConverterFactory.create ()) Также используйте ту же версию библиотек: фабрика конвертеров модификаций не может получить доступ к GsonConverterFactory

...