【问题标题】:No virtual method loadThumbnail() in class ContentResolver or its super classes类 ContentResolver 或其超类中没有虚拟方法 loadThumbnail()
【发布时间】:2020-04-15 11:29:27
【问题描述】:

当我使用public @NonNull Bitmap loadThumbnail(@NonNull Uri uri, @NonNull Size size,@Nullable CancellationSignal signal)方法时,

总是显示这个错误

2019-12-24 16:16:10.661 30299-30299/com.shaheen.filemanager E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.shaheen.filemanager, PID: 30299
    java.lang.NoSuchMethodError: No virtual method loadThumbnail(Landroid/net/Uri;Landroid/util/Size;Landroid/os/CancellationSignal;)Landroid/graphics/Bitmap; in class Landroid/content/ContentResolver; or its super classes (declaration of 'android.content.ContentResolver' appears in /system/framework/framework.jar)
        at com.shaheen.filemanager.activities.FileSelectActivity.onCreate(FileSelectActivity.kt:38)
        at android.app.Activity.performCreate(Activity.java:7036)
        at android.app.Activity.performCreate(Activity.java:7027)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6501)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

有没有其他方法可以解决这个错误?

我的代码如下所示:

val bitmap = applicationContext.contentResolver.loadThumbnail(uri,Size(5,5),null)
thumbnail_image_view.setImageBitmap(bitmap)
screenshot_image_view.setImageBitmap(bitmap)

【问题讨论】:

  • 此方法是在 API 29 (Android 10.0) 中添加的。您很可能在较低的 API 上调用它。

标签: android thumbnails android-context android-contentresolver


【解决方案1】:

loadThumbnail() 方法仅在 Android 10.0 的 API 级别 29 中添加,因此在较低版本中无法使用。 但是,您可以使用 picasso 之类的图像加载器库或使用 uri 滑动。

【讨论】:

    【解决方案2】:

    您是否尝试过传递活动或片段的上下文而不是应用程序上下文?

    【讨论】:

    • 奇怪,你有没有试过重建或无效缓存并重启
    • 您是否尝试过使用其他库,例如 glide,它是 android 的图像加载库?
    猜你喜欢
    • 2019-08-28
    • 2020-06-21
    • 2018-12-22
    • 2020-12-03
    • 2018-10-15
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多