После обновления до androidx.fragment:fragment-testing
v1.0-alpha03 мы получаем следующее падение в конце теста.
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Collection java.util.concurrent.ConcurrentHashMap.values()' on a null object reference
at androidx.lifecycle.ViewModel.clear(ViewModel.java:125)
at androidx.lifecycle.ViewModelStore.clear(ViewModelStore.java:62)
Важно, что это тест, в котором мы моделируем экземпляр ViewModel
, который используется, и проблемы, похоже, связаны с изменениями в lifecycle-viewmodel
v2.1.0-alpha01, от которых мы теперь имеем транзитивную зависимость. В частности, происходит сбой в следующем методе, потому что mBagOfTags
является нулевым
final void clear() {
mCleared = true;
for (Object value: mBagOfTags.values()) {
// see comment for the similar call in setTagIfAbsent
closeWithRuntimeException(value);
}
onCleared();
}
Проработав вопрос, название теперь, возможно, немного вводит в заблуждение. Похоже, проблема, как правило, связана с насмешливыми ViewModel
экземплярами, начиная с обновления 2.1.0-alpha01