хорошего вечера,Android Proguard и FirebaseListAdapter конфликтующих
Я провел несколько часов, пытаясь понять, что происходит. Это ситуация:
Сделано приложение, прекрасно работает в режиме отладки, но режим релиз дает мне ошибки на FirebaseListAdapter:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("a/");
mAdapter = new FirebaseListAdapter<Acties>(activity, Acties.class, R.layout.list, ref) {
@Override
public void populateView(View v, Acties model, int position) {
((TextView)v.findViewById(R.id.textView1)).setText(model.getWinkel());
((TextView)v.findViewById(R.id.textView2)).setText(model.getBericht());
((TextView)v.findViewById(R.id.textView3)).setText(model.getExpdate());
}
};
FirebaseListAdapter использует Acties.class в добытчиками.
public class Acties {
private String bericht;
private String winkel;
private String expdate;
public Acties() {
}
public Acties(String bericht, String expdate, String winkel) {
this.bericht = bericht;
this.winkel = winkel;
this.expdate = expdate;
}
public String getBericht() {
return bericht;
}
public String getExpdate() {
return expdate;
}
public String getWinkel() {
return winkel;
}
}
Я редактировал каждую строку для публики, а не частным. (В соответствии с этим ответом: https://stackoverflow.com/a/37744290/6510329)
Это зафиксировало сбой приложения, но теперь у меня есть пустой список. Теперь я вижу ListView, но он не заполнен информацией, полученной из моей базы данных.
Что происходит? Я не вижу ошибку из-за ее режима выпуска.
Я также добавил @Keep в свои классы, и это все еще не сработало. (Ответ: https://stackoverflow.com/a/41141406/6510329)
Добавлена этот код Proguard-файл правила:
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-dontwarn org.ietf.jgss.**
Который дал мне точно такой же, как и раньше, список теперь виден, но с пустым TextViews .. (Ответ: https://stackoverflow.com/a/26274623/7157263)
Добавлены эти правила Proguard:
-keepattributes Signature
-keepattributes *Annotation*
Еще ничего не изменилось .. КАЖДАЯ функция firebase работает идеально. КРОМЕ метода FirebaseListAdapter/populateview
Спасибо за чтение на все это, я собираюсь сделать перерыв сейчас и вернуться к нему в ближайшее время, возможно, это даст мне какой-то «гений» момент
Это сработало для меня :) Я использовал @Keep, но я не использовал класс -keep в proguard .. это была моя ошибка. Спасибо –
Должен ли я сделать 'minifyEnabled true' или false – Leenah
' minifyEnabled' должен быть 'true' –