Ich habe diese Null Ausnahme jedes Mal, wenn ich Proguard aktivieren und Retrofit verwenden, um es zu lösen, fügte ich meine Klassen hinzu, die Retrofit zur Proguard-Liste verwenden, Beispiel:NullException int java.util.List.size() mit Retrofit2, wenn Proguard aktiviert ist
-keep class com.abohani.example.utils.ban { *; }
Auch tho ich es hinzugefügt haben, ich habe folgende Fehlermeldung:
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)
Dieser Fehler tritt nur auf, wenn Proguard aktiviert ist, wenn es keine Fehler bei allen deaktiviert ist, die Linie angegeben im Fehler-/Codebeispiel:
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();
}
});
die Zeile 91 ist die 'for' Schleife, die Antwort ist korrekt und es ist überhaupt nicht null, es ist nur durch die Aktivierung von proguard verursacht, und ich habe es bereits in die Liste aufgenommen und weiß es nicht warum es nicht funktioniert.
Was verursacht es? und wie man diese Fehler löscht, ohne Klassen zur Proguard-Liste hinzuzufügen, da es einige Klassen gibt, deren kompletten Code ich nicht anzeigen kann, und ich muss sie mit Proguard verschlüsseln.
Vielen Dank im Voraus.
Sowohl Modell als auch BanItem werden von der Anweisung '-keep' angesprochen. – njzk2
Alle meine Modelle sind in "Modell" -Paket, und sie sind auch in -keep. – Jaeger
Ich denke, der Code für diese 2 Klassen könnte helfen. Stellen Sie sicher, dass alles, was geparst wird, ordnungsgemäß aufbewahrt wird. – njzk2