junixapp/XPopup

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.viewpager.widget.PagerAdapter com.lxj.xpopup.widget.HackyViewPager.getAdapter()' on a null object reference

Opened this issue · 0 comments

XPopup版本
2.9.19

手机系统和型号
华为Mate20 Android 10

描述你的问题

Fatal Exception: java.lang.RuntimeException: Unable to destroy activity {com.xxxx.xxx.xxx.xxx.ProductActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.viewpager.widget.PagerAdapter com.lxj.xpopup.widget.HackyViewPager.getAdapter()' on a null object reference
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5428)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5461)
at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2249)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:209)
at android.os.Looper.loop(Looper.java:296)
at android.app.ActivityThread.main(ActivityThread.java:7882)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:568)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.viewpager.widget.PagerAdapter com.lxj.xpopup.widget.HackyViewPager.getAdapter()' on a null object reference
at com.lxj.xpopup.core.ImageViewerPopupView.destroy(ImageViewerPopupView.java:448)
at com.lxj.xpopup.core.BasePopupView.onDetachedFromWindow(BasePopupView.java:897)
at com.lxj.xpopup.core.BasePopupView.onDestroy(BasePopupView.java:833)
at com.lxj.xpopup.core.BasePopupView_LifecycleAdapter.callMethods(BasePopupView_LifecycleAdapter.java:25)
at androidx.lifecycle.SingleGeneratedAdapterObserver.onStateChanged(SingleGeneratedAdapterObserver.java:31)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)
at androidx.lifecycle.LifecycleRegistry.backwardPass(LifecycleRegistry.java:284)
at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:302)
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:148)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:134)
at androidx.lifecycle.ReportFragment.dispatch(ReportFragment.java:68)
at androidx.lifecycle.ReportFragment$LifecycleCallbacks.onActivityPreDestroyed(ReportFragment.java:224)
at android.app.Activity.dispatchActivityPreDestroyed(Activity.java:1515)
at android.app.Activity.performDestroy(Activity.java:8311)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1364)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5415)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5461)
at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2249)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:209)
at android.os.Looper.loop(Looper.java:296)
at android.app.ActivityThread.main(ActivityThread.java:7882)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:568)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)

object XpopDialogExUtils {
/***
* dialog 工具类
/
/
**
* 自定义大图浏览
*
* 为了替代 ShowImageProductActivity
*/
fun getCustomImageViewerPopupDialog(
mContext: Context?,
mImageView: ImageView?,
currentPostion: Int,
mImageList: List<Any?>?,
isHaveShopSimilar: Boolean,
isShowSmail: Boolean,
isShowSaveButton: Boolean = false,
isShowIndicator: Boolean = false, productId: String?
): BasePopupView? {
if (mContext == null || mImageList.isNullOrEmpty() || mImageView == null) {
return null
}
val viewerPopup = CustomImageViewerPopup(
mContext,
isHaveShopSimilar,
isShowSmail,
mImageList,
productId,
currentPostion,
isShowIndicator
)
viewerPopup.setSrcView(mImageView, currentPostion)
viewerPopup.setImageUrls(mImageList)
viewerPopup.setXPopupImageLoader(CustomerSmartGlideImageLoader())
viewerPopup.isShowSaveButton(isShowSaveButton)//是否显示保存按钮
viewerPopup.isShowIndicator(false)
return XPopup.Builder(mContext)
.isDestroyOnDismiss(true)
.asCustom(viewerPopup)
.show()

}

}