gpt4 book ai didi

android - 迁移到 AndroidX 后的 SingleLiveEvent 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:54 24 4
gpt4 key购买 nike

使用 Android studio 3.2.1 迁移到 AndroidX 后,由于此错误,我无法运行应用程序:

SingleLiveEvent.java:29: error: name clash: observe(LifecycleOwner,Observer<T#1>) in SingleLiveEvent and observe(LifecycleOwner,Observer<? super T#2>) in LiveData have the same erasure, yet neither overrides the other
public void observe(LifecycleOwner owner, final Observer<T> observer) {
^
where T#1,T#2 are type-variables:
T#1 extends Object declared in class SingleLiveEvent
T#2 extends Object declared in class LiveData
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

我用谷歌搜索了一下,找到了其他的解决方案,但是如何优雅地解决这个问题呢?我不想在使用单个实时事件的每个地方重构整个应用程序。

最佳答案

我发现了问题。LiveData 提供了这个:

public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<? super T> observer)

虽然 SingleLiveEvent 提供:

public void observe(LifecycleOwner owner, final Observer<T> observer)

解决方案是更改SingleLiveEvent中的方法签名以匹配LiveData

关于android - 迁移到 AndroidX 后的 SingleLiveEvent 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53715880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com