iielse / imageviewer

A simple and customizable Android full-screen image viewer 一个简单且可自定义的Android全屏图像浏览器
MIT License
2.23k stars 310 forks source link

initKey 为null #94

Closed sunzhishuai closed 4 years ago

sunzhishuai commented 4 years ago

com.github.iielse.imageviewer.core.Components.requireDataProvider(SourceFile:46)

2 com.github.iielse.imageviewer.adapter.Repository$dataProvider$2.invoke(SourceFile:9) 3 com.github.iielse.imageviewer.adapter.Repository$dataProvider$2.invoke(SourceFile:8) 4 kotlin.l.getValue(SourceFile:74) 5 com.github.iielse.imageviewer.adapter.Repository.getDataProvider(Unknown Source:7) 6 com.github.iielse.imageviewer.adapter.Repository.access$getDataProvider$p(SourceFile:8) 7 com.github.iielse.imageviewer.adapter.Repository$dataSource$1.loadInitial(SourceFile:21) 8 androidx.paging.ItemKeyedDataSource.dispatchLoadInitial(SourceFile:305) 9 androidx.paging.ContiguousPagedList.(SourceFile:187) 10 androidx.paging.PagedList.create(SourceFile:439) 11 androidx.paging.PagedList$Builder.build(SourceFile:611) 12 androidx.paging.LivePagedListBuilder$1.compute(SourceFile:202) 13 androidx.paging.LivePagedListBuilder$1.compute(SourceFile:167) 14 androidx.lifecycle.ComputableLiveData$2.run(SourceFile:101) 15 java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) 16 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 17 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 18 java.lang.Thread.run(Thread.java:929)

debug 好久 一直复现不了 但是 线上一直存在这个问题

iielse commented 4 years ago

这个错误栈是不是没贴完全,头部应该有个xxxException. 希望有更多信息

iielse commented 4 years ago

fun requireDataProvider() = dataProvider!! 这里空指针异常吗

iielse commented 4 years ago

如果是kotlinNullPointException的话 ,我现在只能怀疑这个fragment被系统重新创建过导致。比如'不保留活动之类的情况', 也就是 Components.release的调用时机有问题了,目前我会暂时朝这个方向尝试排查确认解决问题。

sunzhishuai commented 4 years ago

1 com.github.iielse.imageviewer.core.Components.requireInitKey(SourceFile:48)

2 com.github.iielse.imageviewer.ImageViewerDialogFragment$initKey$2.invoke(SourceFile:28) 3 com.github.iielse.imageviewer.ImageViewerDialogFragment$initKey$2.invoke(SourceFile:24) 4 kotlin.l.getValue(SourceFile:74) 5 com.github.iielse.imageviewer.ImageViewerDialogFragment.getInitKey(Unknown Source:7) 6 com.github.iielse.imageviewer.ImageViewerDialogFragment.access$getInitKey$p(SourceFile:24) 7 com.github.iielse.imageviewer.ImageViewerDialogFragment$adapter$2.invoke(SourceFile:30) 8 com.github.iielse.imageviewer.ImageViewerDialogFragment$adapter$2.invoke(SourceFile:24) 9 kotlin.l.getValue(SourceFile:74) 10 com.github.iielse.imageviewer.ImageViewerDialogFragment.getAdapter(Unknown Source:7) 11 com.github.iielse.imageviewer.ImageViewerDialogFragment.onViewCreated(SourceFile:38) 12 androidx.fragment.app.FragmentStateManager.createView(SourceFile:322) 13 androidx.fragment.app.FragmentManager.moveToState(SourceFile:1185) 14 androidx.fragment.app.FragmentManager.moveToState(SourceFile:1354) 15 androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(SourceFile:1432) 16 androidx.fragment.app.FragmentManager.moveToState(SourceFile:1495) 17 androidx.fragment.app.FragmentManager.dispatchStateChange(SourceFile:2617) 18 androidx.fragment.app.FragmentManager.dispatchActivityCreated(SourceFile:2569) 19 androidx.fragment.app.FragmentController.dispatchActivityCreated(SourceFile:247) 20 androidx.fragment.app.FragmentActivity.onStart(SourceFile:541) 21 androidx.appcompat.app.AppCompatActivity.onStart(SourceFile:201) 应该是 Components.release 调用时机问题,我尝试了多次 复现不了。

iielse commented 4 years ago

好的 ,我正在debug查, 等下回复你

iielse commented 4 years ago

确认了,是release 时机不对. 修复中

iielse commented 4 years ago

@sunzhishuai 修复了 2.0.7

sunzhishuai commented 4 years ago

@sunzhishuai 修复了 2.0.7

谢谢 我可以加一下我的QQ吗 553806014 有2个体验上的问题,我想改一下,有些问题请教您

iielse commented 4 years ago

你来加我吧