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.
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)
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)
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"
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
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()
}