I created a meme share app that takes a random meme from Reddit in Image view and the user has the option to share the meme through other apps. The share function works good with jpg, png, etc file types except gif. The gif appears in the imageView but as soon as I click the share button the app crashes. This only happens in the gif file type
My share Function code. The function name is shareMeme.
private void shareImageandText(Bitmap bitmap) { Uri uri = getmageToShare(bitmap); Intent intent = new Intent(Intent.ACTION_SEND); // putting uri of image to be shared intent.putExtra(Intent.EXTRA_STREAM, uri); // adding text to share intent.putExtra(Intent.EXTRA_TEXT, "Hey! Checkout this cool meme on Reddit"); // Add subject Here intent.putExtra(Intent.EXTRA_SUBJECT, "Try Meme Lelo"); // setting type to image intent.setType("image/*"); // calling startactivity() to share startActivity(Intent.createChooser(intent, "Share Via")); } // Retrieving the url to share private Uri getmageToShare(Bitmap bitmap) { File imagefolder = new File(getCacheDir(), "images"); Uri uri = null; try { imagefolder.mkdirs(); File file = new File(imagefolder, "shared_image.png"); FileOutputStream outputStream = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.PNG, 90, outputStream); outputStream.flush(); outputStream.close(); uri = FileProvider.getUriForFile(this, "com.akki.memelelo.fileprovider", file); } catch (Exception e) { Toast.makeText(this, "" + e.getMessage(), Toast.LENGTH_LONG).show(); } return uri; } public void shareMeme(View view) { BitmapDrawable bitmapDrawable = (BitmapDrawable) memeImageView.getDrawable(); Bitmap bitmap = bitmapDrawable.getBitmap(); shareImageandText(bitmap);}
Logcat - Red Lines Error Msg
2021-07-02 15:04:26.238 9953-9953/com.akki.memelelo E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.akki.memelelo, PID: 9953java.lang.IllegalStateException: Could not execute method for android:onClickat androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:414)at android.view.View.performClick(View.java:7448)at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)at android.view.View.performClickInternal(View.java:7425)at android.view.View.access$3600(View.java:810)at android.view.View$PerformClick.run(View.java:28305)at android.os.Handler.handleCallback(Handler.java:938)at android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:223)at android.app.ActivityThread.main(ActivityThread.java:7656)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)Caused by: java.lang.reflect.InvocationTargetExceptionat java.lang.reflect.Method.invoke(Native Method)at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)at android.view.View.performClick(View.java:7448) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) at android.view.View.performClickInternal(View.java:7425) at android.view.View.access$3600(View.java:810) at android.view.View$PerformClick.run(View.java:28305) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.ClassCastException: com.bumptech.glide.load.resource.gif.GifDrawable cannot be cast to android.graphics.drawable.BitmapDrawableat com.akki.memelelo.MainActivity.shareMeme(MainActivity.java:148)at java.lang.reflect.Method.invoke(Native Method) at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) at android.view.View.performClick(View.java:7448) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) at android.view.View.performClickInternal(View.java:7425) at android.view.View.access$3600(View.java:810) at android.view.View$PerformClick.run(View.java:28305) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2021-07-02 15:04:28.797 7519-7836/com.google.android.googlequicksearchbox E/sb.v.u.LiteSuggestSourc: On-device lite suggest model loading error.
2021-07-02 15:04:29.025 7519-7745/com.google.android.googlequicksearchbox E/MDD: DownloadProgressMonitor: Can't find file group for uri: android://com.google.android.googlequicksearchbox/files/sharedminusonemodule/shared/SharedMinusOneData.pb.tmp
2021-07-02 15:06:49.119 207-211/? E/android.system.suspend@1.0-service: Error opening kernel wakelock stats for: wakeup34: Permission denied2021-07-02 15:06:49.125 207-211/? E/android.system.suspend@1.0-service: Error opening kernel wakelock stats for: wakeup35: Permission denied