CanHub / Android-Image-Cropper

Image Cropping Library for Android, optimised for Camera / Gallery.
https://canhub.github.io/
Apache License 2.0
1.17k stars 240 forks source link

Crash when set allowFlipping to false #536

Open oleksandr-koba-hhl opened 1 year ago

oleksandr-koba-hhl commented 1 year ago

Hi! When configuring the CropImageContractOptions and setting allowFlipping = false I encountered a crash. Here's my code:

cropImage.launch(
            CropImageContractOptions(
                uri = null,
                cropImageOptions = CropImageOptions(
                    imageSourceIncludeGallery = true,
                    imageSourceIncludeCamera = true,
                    showIntentChooser = true,
                    toolbarColor = colorWhite,
                    toolbarBackButtonColor = colorBlack,
                    activityMenuTextColor = colorBlack,
                    activityMenuIconColor = colorBlack,
                    progressBarColor = colorAccent,
                    guidelinesColor = colorAccent,
                    borderCornerColor = colorAccent,
                    borderLineColor = colorAccent,
                    minCropResultHeight = resources.getDimensionPixelSize(R.dimen.photo_min_height),
                    minCropWindowWidth = binding.photoClImage.width,
                    allowFlipping = false
                )
            )
        )

And stacktrace:

java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.CharSequence android.view.MenuItem.getTitle()' on a null object reference
                                                                                                        at com.canhub.cropper.CropImageActivity.updateMenuItemTextColor(CropImageActivity.kt:454)
                                                                                                        at com.canhub.cropper.CropImageActivity.onCreateOptionsMenu(CropImageActivity.kt:288)
                                                                                                        at android.app.Activity.onCreatePanelMenu(Activity.java:4322)
                                                                                                        at androidx.activity.ComponentActivity.onCreatePanelMenu(ComponentActivity.java:521)
                                                                                                        at androidx.appcompat.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:95)
                                                                                                        at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.onCreatePanelMenu(AppCompatDelegateImpl.java:3122)
                                                                                                        at androidx.appcompat.app.AppCompatDelegateImpl.preparePanel(AppCompatDelegateImpl.java:1913)
                                                                                                        at androidx.appcompat.app.AppCompatDelegateImpl.doInvalidatePanelMenu(AppCompatDelegateImpl.java:2194)
                                                                                                        at androidx.appcompat.app.AppCompatDelegateImpl$2.run(AppCompatDelegateImpl.java:276)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:938)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loop(Looper.java:236)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8057)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
vanniktech commented 1 year ago

Care to submit a PR with a fix?

volodymyr-chekyrta commented 10 months ago

Hi all! As I see, it's already fixed here https://github.com/CanHub/Android-Image-Cropper/blob/main/cropper/src/main/kotlin/com/canhub/cropper/CropImageActivity.kt#L453 But still reproducing in 4.5.0. @vanniktech, Could you please build and publish the new version with this fix?

gagarinn commented 10 months ago

I have the same issue

optimized-code commented 8 months ago

Issue is fixed already, but new release tag is not created. Kindly release it so that fix can be visible to all users.

SourabhSuman007 commented 2 months ago

@vanniktech by when can we expect the new release with this fix?