У меня есть это пустое исключение каждый раз, когда я включаю Proguard и использую Retrofit, для его решения я добавил свои классы, которые используют Retrofit в список Proguard, например:NullException int java.util.List.size() с использованием Retrofit2, когда Proguard включен
-keep class com.abohani.example.utils.ban { *; }
Даже Тхо я добавил его, я имею следующую ошибку:
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
at com.abohani.example.utils.BanUtil$2.onResponse(BanUtil.java:91)
Эта ошибка происходит только тогда, когда Proguard включена, когда он не будет отключен без ошибок на всех, заявил линия в образце ошибки/кода:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_PATH)
.addConverterFactory(GsonConverterFactory.create())
.build();
ReApi Api = retrofit.create(ReApi.class);
Call<Model> Connection = Api.GetList(UID,Key);
Connection.enqueue(new Callback<Model>() {
@Override
public void onResponse(Call<Model> call, Response<Model> response) {
List<BanItem> LatestItems = response.body().GetMain();
for (int i = 0; i < LatestItems.size(); i++) {
}
}
@Override
public void onFailure(Call<Model> call, Throwable t) {
t.printStackTrace();
}
});
линия 91 является линией контура «для», ответ правильный, и он не является нулевым, это просто вызвано включением прогурты, и я уже добавил его в список и не знаю почему он не работает.
Что вызывает это? и как решить эти ошибки без добавления классов в список Proguard, так как есть некоторые классы, которые я не могу показать полный код, и я должен зашифровать его с помощью Proguard.
Заранее спасибо.
Как модель, так и BanItem предназначены для инструкции '-keep'? – njzk2
Все мои модели находятся в «модельном» пакете, и они также находятся в -кв. – Jaeger
Я думаю, код для этих 2 классов может помочь. Убедитесь, что все, что анализируется, должным образом сохранено. – njzk2