nguyenhoanglam / ImagePicker

A customizable library for selecting images on the device.
Apache License 2.0
598 stars 158 forks source link

uri must not be null #150

Closed felmont68 closed 1 year ago

felmont68 commented 1 year ago

Actualmente estoy usando la implementación

implementation('com.github.nguyenhoanglam:ImagePicker:1.4.3') { exclude group: 'com.google.android.material', module: 'material' }

hasta ahora cuando accedo a la galería y selecciono, una imagen me funciona correctamente pero si tomo una foto, ahí es donde me aparece este error:

E/AndroidRuntime: FATAL EXCEPTION: android.bg Process: mposglobal.com.mposglobal, PID: 15242 java.lang.IllegalStateException: uri must not be null at com.nguyenhoanglam.imagepicker.ui.camera.DefaultCameraModule$getImage$2.onScanCompleted(DefaultCameraModule.kt:96) at android.media.MediaScannerConnection.runCallBack(MediaScannerConnection.java:277) at android.media.MediaScannerConnection.lambda$scanFile$2(MediaScannerConnection.java:254) at android.media.-$$Lambda$MediaScannerConnection$OHvRCUP9iHmcrBgJ56umGlJZPUU.run(Unknown Source:6) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:246) at android.os.HandlerThread.run(HandlerThread.java:67)

yo creería que el problema se presenta porque uri no recibe nada pero path si tiene el valor correcto y en la linea de revokeAppPermission deberia ir context e imagenUri en vez de contexto y uri o estaré equivocado?.

override fun getImage(context: Context, isRequireId: Boolean, imageReadyListener: OnImageReadyListener?) { checkNotNull(imageReadyListener) { "OnImageReadyListener must not be null" } if (imageFilePath == null) { imageReadyListener.onImageNotReady() return } if (imageFilePath != null) { MediaScannerConnection.scanFile(context.applicationContext, arrayOf(imageFilePath!!), null) { path, uri -> if (path != null) { val id = if (isRequireId && imageUri != null) (getImageIdFromURI(context, imageUri!!) ?: 0) else 0 imageReadyListener.onImageReady(ImageHelper.singleListFromPath(id, path)) } else { imageReadyListener.onImageNotReady() } revokeAppPermission(context, uri) imageFilePath = null imageUri = null } } }

nguyenhoanglam commented 1 year ago

@felmont68 I suggest you should try v1.5.5