Fresco: java.lang.UnsatisfiedLinkError: com.facebook.imagepipeline.memory.NativeMemoryChunk y java.lang.UnsatisfiedLinkError: no se pudo encontrar DSO para cargar: libimagepipeline.so

Creado en 23 jul. 2019  ·  12Comentarios  ·  Fuente: facebook/fresco

Hola, tengo dos problemas, la mayoría de ellos ocurren en el sistema Android 5.1 del teléfono móvil de la marca OPPO. El siguiente es el registro de errores.

Log1

java.lang.UnsatisfiedLinkError: com.facebook.imagepipeline.memory.NativeMemoryChunk
at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:25)
    at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:13)
    at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:267)
    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferOutputStream.<init>(MemoryPooledByteBufferOutputStream.java:51)
    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newOutputStream(MemoryPooledByteBufferFactory.java:106)
    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newOutputStream(MemoryPooledByteBufferFactory.java:24)
    at com.facebook.imagepipeline.producers.NetworkFetchProducer.onResponse(NetworkFetchProducer.java:96)
    at com.facebook.imagepipeline.producers.NetworkFetchProducer$1.onResponse(NetworkFetchProducer.java:73)
    at com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher$2.onResponse(OkHttpNetworkFetcher.java:193)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:174)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    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)

Log2

java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so caused by: dlopen failed: "/data/data/com.saltchucker/lib-main/libimagepipeline.so" is 64-bit instead of 32-bit
    at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
    at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
    at com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:40)
    at com.facebook.imagepipeline.memory.NativeMemoryChunk.<clinit>(NativeMemoryChunk.java:31)
    at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:25)
    at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:13)
    at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:267)
    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferOutputStream.<init>(MemoryPooledByteBufferOutputStream.java:51)
    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:73)
    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:24)
    at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:85)
    at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:97)
    at com.facebook.imagepipeline.producers.LocalAssetFetchProducer.getEncodedImage(LocalAssetFetchProducer.java:37)
    at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:50)
    at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:46)
    at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:43)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51)
    at java.lang.Thread.run(Thread.java:818)

Versión Fresco

implementation "com.facebook.fresco:fresco:1.13.0"
implementation "com.facebook.fresco:animated-gif:1.13.0"
implementation "com.facebook.fresco:animated-webp:1.13.0"
implementation "com.facebook.fresco:webpsupport:1.13.0"
implementation "com.facebook.fresco:imagepipeline-okhttp3:1.13.0"

La mayoría de ellos ocurren en los siguientes teléfonos.

  • OPPO A59s
  • OPPO A37
  • OPPO A59
  • OPPO R9
stale

Comentario más útil

Tengo una solución antes de que fresco solucione este problema, tal vez pueda ayudarlo.
Precargue libimagepipeline así, cierre fresco si detectamos un UnsatisfiedLinkError, luego reinícielo mediante la implementación nativa de Disable. Como esto:

val builder = ImagePipelineConfig.newBuilder(context)
val imagePipelineConfig = builder.build()
Fresco.initialize(context, imagePipelineConfig)
try {
ImagePipelineNativeLoader.load()
} catch (error: UnsatisfiedLinkError) {
Fresco.shutDown()
builder.experiment().setNativeCodeDisabled(true)
imagePipelineConfig = builder.build()
Fresco.initialize(context, imagePipelineConfig)
error.printStackTrace()
}

Todos 12 comentarios

Frente al mismo choque. Actualice si hay alguna corrección.

¿Alguna solución?
Estoy enfrentando el mismo accidente, por favor resuélvalo!

Tengo una solución antes de que fresco solucione este problema, tal vez pueda ayudarlo.
Precargue libimagepipeline así, cierre fresco si detectamos un UnsatisfiedLinkError, luego reinícielo mediante la implementación nativa de Disable. Como esto:

val builder = ImagePipelineConfig.newBuilder(context)
val imagePipelineConfig = builder.build()
Fresco.initialize(context, imagePipelineConfig)
try {
ImagePipelineNativeLoader.load()
} catch (error: UnsatisfiedLinkError) {
Fresco.shutDown()
builder.experiment().setNativeCodeDisabled(true)
imagePipelineConfig = builder.build()
Fresco.initialize(context, imagePipelineConfig)
error.printStackTrace()
}

Hola, parece que no ha habido actividad sobre este tema recientemente. ¿Se ha solucionado el problema o aún requiere la atención de la comunidad? Este problema puede resolverse si no se produce más actividad. También puede etiquetar este problema como "error" o "mejora" y lo dejaré abierto. Gracias por sus aportaciones.

Hola, parece que no ha habido actividad sobre este tema recientemente. ¿Se ha solucionado el problema o aún requiere la atención de la comunidad? Este problema puede resolverse si no se produce más actividad. También puede etiquetar este problema como "error" o "mejora" y lo dejaré abierto. Gracias por sus aportaciones.

https://github.com/facebook/SoLoader/pull/45 potencialmente soluciona este problema, supongo.

Hola, parece que no ha habido actividad sobre este tema recientemente. ¿Se ha solucionado el problema o aún requiere la atención de la comunidad? Este problema puede resolverse si no se produce más actividad. También puede etiquetar este problema como "error" o "mejora" y lo dejaré abierto. Gracias por sus aportaciones.

Cerrando este problema después de un período prolongado de inactividad. Si este problema sigue presente en la última versión, no dude en volver a abrir con información actualizada.

Se ha aterrizado la solución. Pronto lanzaremos una nueva versión de Fresco.

@oprisnik

Se ha aterrizado la solución. Pronto lanzaremos una nueva versión de Fresco.

¿Podría proporcionar más información? ¿Se requerirán cambios adicionales en el lado de la configuración? ¿Cuál es la versión esperada que contiene la solución para los problemas mencionados?

facebook / SoLoader # 45 potencialmente soluciona este problema, supongo.

¿Se ha lanzado la nueva versión?

Utilizo la última versión v2.2, y todavía sucede en mi aplicación.
java.lang.UnsatisfiedLinkError: no se pudo encontrar DSO para cargar: libimagepipeline.so resultado: 0

¿Fue útil esta página
0 / 5 - 0 calificaciones