更新到androidx.fragment:fragment-testingv1.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-viewmodelv2.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 更新以来,问题似乎通常与模拟实例有关