【问题标题】:Glide giving error while loading image in android "java.lang.NullPointerException: Argument must not be null"在 android “java.lang.NullPointerException: Argument must not be null”中加载图像时出现 Glide 错误
【发布时间】:2021-08-31 16:49:59
【问题描述】:
2021-08-30 22:31:54.727 15117-15117/com.eosphorus.flockflairapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.eosphorus.flockflairapp, PID: 15117
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eosphorus.flockflairapp/com.eosphorus.flockflairapp.DisplayQuestions}: java.lang.NullPointerException: Argument must not be null
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:201)
        at android.app.ActivityThread.main(ActivityThread.java:6806)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
     Caused by: java.lang.NullPointerException: Argument must not be null
        at com.bumptech.glide.util.Preconditions.checkNotNull(Preconditions.java:31)
        at com.bumptech.glide.util.Preconditions.checkNotNull(Preconditions.java:25)
        at com.bumptech.glide.RequestBuilder.into(RequestBuilder.java:651)
        at com.eosphorus.flockflairapp.DisplayQuestions.onCreate(DisplayQuestions.java:116)
        at android.app.Activity.performCreate(Activity.java:7224)
        at android.app.Activity.performCreate(Activity.java:7213)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:201) 
        at android.app.ActivityThread.main(ActivityThread.java:6806) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) 
  • 代码
<ImageView
            android:id = "@+id/imageView"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content" />
        ImageView imageView = findViewById(R.id.imageView);

        RequestOptions options = new RequestOptions()
                .placeholder(R.drawable.ic_launcher_background)
                .error(R.drawable.ic_launcher_background);

        Glide.with(this).load("https://www.tutorialspoint.com/images/tp-logo-diamond.png").apply(options).into(imageView);

【问题讨论】:

  • imageView 显然为空。 为什么不清楚。可以发minimal, reproducible example吗?
  • @joachim Sauer 不,它不为空......
  • @Lav Sharma 请使用类似stackoverflow.com/a/44199289/12660050 的选项直接应用...
  • @VatsalDholakiya:好吧,堆栈跟踪清楚地表明“参数不能为空”,您调用的方法是RequestBuilder.into,如果您检查RequestBuilder source,那么您会看到into() 做的第一件事就是打电话给Preconditions.checkNotNull(view);。我非常有信心您传递给into() 的值由于某种原因为空。你可以选择不相信,但这并不意味着我错了。
  • 是的,它是空指针异常,你是对的,在 into() 处有空,但不是因为什么都没有通过。我认为这是因为在 apply() 中传递的选项有问题。

标签: java android android-glide


【解决方案1】:

添加 .apply(new RequestOptions() 以继续使用最新版本。 只需替换以下代码:

Glide
 .with(this)
 .load(R.drawable.image_default_profile_picture)
 .apply(new RequestOptions()
 .placeholder(R.mipmap.ic_launcher_background)
 .fitCenter())
 .into(imageView);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2019-02-07
    • 2020-05-19
    • 2019-12-02
    • 2019-05-25
    相关资源
    最近更新 更多