Skip to content

JNI error on AVIF - runtime crash on 4.13.1 #4761

@serializer

Description

@serializer

Glide Version: 4.13.1

Integration libraries: Okhttp-4.9.0

Device/Android Version: Samsung M30s/10

Issue details / Repro steps / Use case background: App is crashing while using latest glide with AVIF integration.

Glide load line / GlideModule (if any) / list Adapter code (if any):

RequestBuilder<Bitmap> mainRequestBuilder = GlideApp.with(imageView)
                .asBitmap()
                .load(mainURL)
                .thumbnail(GlideApp.with(imageView).asBitmap().load(thumbUrl).apply(requestOptions))
                .apply(requestOptions)
                .listener(new MyImageLoadListener(listener));

Layout XML:

<FrameLayout xmlns:android="...

Stack trace / LogCat:

2022-03-10 16:01:37.132 23618-24007/com.application.zomato.internal A/zomato.interna: java_vm_ext.cc:570] JNI DETECTED ERROR IN APPLICATION: JNI GetFieldID called with pending exception java.lang.NoSuchFieldError: no "I" field "width" in class "Lorg/aomedia/avif/android/AvifDecoder$Info;" or its superclasses
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class) (Runtime.java:-2)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1115)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1069)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:1007)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void java.lang.System.loadLibrary(java.lang.String) (System.java:1667)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void org.aomedia.avif.android.AvifDecoder.<clinit>() (AvifDecoder.java:1)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at boolean org.aomedia.avif.android.AvifDecoder.a(java.nio.ByteBuffer) (AvifDecoder.java:1)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at boolean xc.a.b(java.lang.Object, zc.d) (AvifByteBufferBitmapDecoder.java:2)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at com.bumptech.glide.load.engine.s com.bumptech.glide.load.engine.h.b(com.bumptech.glide.load.data.e, int, int, zc.d, java.util.List) (DecodePath.java:4)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at com.bumptech.glide.load.engine.s com.bumptech.glide.load.engine.h.a(com.bumptech.glide.load.data.e, int, int, zc.d, com.bumptech.glide.load.engine.h$a) (DecodePath.java:4)
2022-03-10 16:00:30.123 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at com.bumptech.glide.load.engine.s com.bumptech.glide.load.engine.q.a(com.bumptech.glide.load.data.e, zc.d, int, int, com.bumptech.glide.load.engine.h$a) (LoadPath.java:6)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at com.bumptech.glide.load.engine.s com.bumptech.glide.load.engine.DecodeJob.v(java.lang.Object, com.bumptech.glide.load.DataSource) (DecodeJob.java:15)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at com.bumptech.glide.load.engine.s com.bumptech.glide.load.engine.DecodeJob.p(com.bumptech.glide.load.data.d, java.lang.Object, com.bumptech.glide.load.DataSource) (DecodeJob.java:4)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void com.bumptech.glide.load.engine.DecodeJob.x() (DecodeJob.java:3)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void com.bumptech.glide.load.engine.DecodeJob.l(zc.b, java.lang.Object, com.bumptech.glide.load.data.d, com.bumptech.glide.load.DataSource, zc.b) (DecodeJob.java:10)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void com.bumptech.glide.load.engine.c.d(java.lang.Object) (DataCacheGenerator.java:1)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void dd.d$a.f(com.bumptech.glide.Priority, com.bumptech.glide.load.data.d$a) (ByteBufferFileLoader.java:2)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at boolean com.bumptech.glide.load.engine.c.b() (DataCacheGenerator.java:14)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void com.bumptech.glide.load.engine.DecodeJob.E() (DecodeJob.java:6)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void com.bumptech.glide.load.engine.DecodeJob.F() (DecodeJob.java:7)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void com.bumptech.glide.load.engine.DecodeJob.run() (DecodeJob.java:5)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) (ThreadPoolExecutor.java:1167)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void java.util.concurrent.ThreadPoolExecutor$Worker.run() (ThreadPoolExecutor.java:641)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void cd.a$c$a.run() (GlideExecutor.java:5)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void java.lang.Thread.run() (Thread.java:919)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]  at void cd.a$b$a.run() (GlideExecutor.java:2)
2022-03-10 16:00:30.124 22346-23141/com.application.zomato.internal A/zomato.interna: runtime.cc:650]
  • It's working fine for 4.13.0 though, probably an issue with proguard. We found that it's crashing for release builds not debug. We used the rules as mentioned on the readme.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions