android - LiveData 'dispatchingValue' 方法 : No virtual method iteratorWithAdditions() 中的致命异常

标签 android setvalue android-livedata

我有一个带有观察我的 LiveData 的 viewModel 的 View 。我从存储库获取数据(从 Room 或 WebAPI 获取数据)。 我已经实现了一个 NetworkBoundResource 抽象类,所以我可以管理 以更清洁的方式加载数据。此类中使用了 MediatorLiveData 对象:

private final MediatorLiveData<Resource<ResultType>> result = new MediatorLiveData<>();

崩溃发生在我的构造函数的第一行:

@MainThread
public NetworkBoundResource() {

    result.setValue(Resource.<ResultType>loading(null));

    final LiveData<ResultType> dbSource = loadFromDb();

    result.addSource(dbSource, new Observer<ResultType>() {
        @Override
        public void onChanged(@Nullable ResultType newData) {
            result.removeSource(dbSource);
            if(shouldFetch(newData))
            {
                fetchFromNetwork(dbSource);
            } else {
                result.setValue(Resource.success(newData));
            }
        }
    });
}

这是错误信息:

java.lang.NoSuchMethodError: No virtual method iteratorWithAdditions()Landroid/arch/core/internal/SafeIterableMap$ListIterator; in class Landroid/arch/core/internal/SafeIterableMap; or its super classes (declaration of 'android.arch.core.internal.SafeIterableMap' appears in /data/app/com.example.smostofi.upswing-XxPvhI837wneIYVTOrU2Dw==/split_lib_dependencies_apk.apk:classes25.dex)
                                                                            at android.arch.lifecycle.LiveData.dispatchingValue(LiveData.java:145)
                                                                            at android.arch.lifecycle.LiveData.setValue(LiveData.java:293)
                                                                            at android.arch.lifecycle.MutableLiveData.setValue(MutableLiveData.java:33)
                                                                            at com.example.smostofi.upswing.data.Util.NetworkBoundResource.<init>(NetworkBoundResource.java:44)

第一次在这里提问,希望我提供了足够的信息! 提前致谢!

最佳答案

这不是重复依赖问题,只需更改您的生命周期版本

compile 'android.arch.lifecycle:extensions:1.0.0-alpha4'

compile 'android.arch.lifecycle:extensions:1.0.0-alpha9'

关于android - LiveData 'dispatchingValue' 方法 : No virtual method iteratorWithAdditions() 中的致命异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47057114/

相关文章:

java - 从另一个 Activity 停止/启动媒体播放器

安卓 MVVM : How to subscribe to a network call by LiveData in ViewModel

Java Android LiveData 调用依赖于其他 LiveData 的 Room 查询

android - 在 android 中使用 Retrofit 和 LiveData 执行一系列异步 Web 请求

java - 带有 Android 客户端 : connection timed out 的 Linux 服务器

android - 向我的日历应用程序添加滑动手势 - android

java - 如何检查值是否是手动设置的,而不是使用 setValue(JSlider、JSpinner)设置的?

python - 在 Pandas DataFrame 中使用 .at 设置值,出现无法理解的类型错误

google-apps-script - 清除单元格内容,然后设置新值

android - 在android中执行卸载任务