Skip to content

Setting image from Uri ImageSource throws InstantiationException #279

Closed
@rmunk

Description

@rmunk

I am trying to load image taken with the camera into SubsamplingScaleImageView but it fails and I get caught exception shown in the Logcat. It works if I make the bitmap from the image myself using BitmapFactory and use ImageSource.bitmap() as the source.
I have checked the image file and it is present on the phone and can be opened without problems.
Here is the code (setting dimensions makes no difference):

final ImageSource imageSource = ImageSource.uri(photoFile.getAbsolutePath())
        .dimensions(viewProfilePicture.getWidth(), viewProfilePicture.getHeight())
        .tilingDisabled();
viewProfilePicture.setImage(imageSource);

And this is the stack trace from the logs:

E/SubsamplingScaleImageView: Failed to load bitmap
      java.lang.InstantiationException: class com.davemorrissey.labs.subscaleview.decoder.SkiaImageDecoder has no zero argument constructor
      at java.lang.Class.newInstance(Class.java:1681)
      at com.davemorrissey.labs.subscaleview.decoder.CompatDecoderFactory.make(CompatDecoderFactory.java:18)
      at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView$BitmapLoadTask.doInBackground(SubsamplingScaleImageView.java:1688)
      at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView$BitmapLoadTask.doInBackground(SubsamplingScaleImageView.java:1662)
      at android.os.AsyncTask$2.call(AsyncTask.java:292)
      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
      at java.lang.Thread.run(Thread.java:818)
      Caused by: java.lang.NoSuchMethodException: <init> []
      at java.lang.Class.getConstructor(Class.java:531)
      at java.lang.Class.getDeclaredConstructor(Class.java:510)
      at java.lang.Class.newInstance(Class.java:1679)
      at com.davemorrissey.labs.subscaleview.decoder.CompatDecoderFactory.make(CompatDecoderFactory.java:18) 
      at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView$BitmapLoadTask.doInBackground(SubsamplingScaleImageView.java:1688) 
      at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView$BitmapLoadTask.doInBackground(SubsamplingScaleImageView.java:1662) 
      at android.os.AsyncTask$2.call(AsyncTask.java:292) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
      at java.lang.Thread.run(Thread.java:818) 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions