Transformations.map() 返回空值 [英] Transformations.map() returns null values

查看:33
本文介绍了Transformations.map() 返回空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个程序,其中有两个 LiveData 对象,如图所示:

I am writing a program in which i have two LiveData objects as shown:

选择的图像;public LiveData>selectedBitmaps= Transformations.map(chosenImages, (placeimags) ->{ArrayList<位图>bitmaps=new ArrayList();for(PhotoI photoI:placeimags.images){尝试 {位图 b=getThumbnail(app.getContentResolver(),photoI.imageURI);如果(b!=空){bitmaps.add(b);}} 捕获(异常 e){e.printStackTrace();}}返回位图;});

public LiveData<placeImages> chosenImages; public LiveData<List<Bitmap>> chosenBitmaps= Transformations.map(chosenImages, (placeimags) -> { ArrayList<Bitmap> bitmaps=new ArrayList<Bitmap>(); for(PhotoI photoI:placeimags.images) { try { Bitmap b=getThumbnail(app.getContentResolver(),photoI.imageURI); if(b!=null) { bitmaps.add(b); } } catch (Exception e) { e.printStackTrace(); } } return bitmaps; });

问题是当我观察 chosenImages LiveData 时它工作正常,但是当我观察 chosenBitmaps LiveData 时它返回以下错误:

The problem is whenever I observe the chosenImages LiveData it works fine, but when I observe chosenBitmaps LiveData it returns the following error:

2020-07-18 17:40:39.790 32164-32164/com.nisarg.locsav E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.nisarg.locsav, PID: 32164
    java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.lifecycle.LiveData.observeForever(androidx.lifecycle.Observer)' on a null object reference
        at androidx.lifecycle.MediatorLiveData$Source.plug(MediatorLiveData.java:141)
        at androidx.lifecycle.MediatorLiveData.onActive(MediatorLiveData.java:118)
        at androidx.lifecycle.LiveData$ObserverWrapper.activeStateChanged(LiveData.java:437)
        at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged(LiveData.java:395)
        at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:361)
        at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:300)
        at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:339)
        at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:145)
        at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:131)
        at androidx.fragment.app.FragmentViewLifecycleOwner.handleLifecycleEvent(FragmentViewLifecycleOwner.java:51)
        at androidx.fragment.app.Fragment.performStart(Fragment.java:2737)
        at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:365)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1194)
        at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
        at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
        at android.os.Handler.handleCallback(Handler.java:794)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6635)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)

我认为 Transformations.map() 返回空值.我之前在一个项目中做过类似的事情,当我使用 Transformations.map() 时发生了同样的事情.有谁知道为什么会这样?

I think Transformations.map() is returning null value. I worked on a similar thing in a project before, same thing happened when i used Transformations.map(). Does anyone know why this is happening?

推荐答案

changepublic LiveDataselectedImages; to

public LiveDataselectedImages = MutableLiveData()

这篇关于Transformations.map() 返回空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆