Fresco: Excepción fatal: java.lang.UnsatisfiedLinkError no pudo encontrar DSO para cargar: libimagepipeline.so / com.facebook.imagepipeline.memory.NativeMemoryChunk

Creado en 11 feb. 2018  ·  87Comentarios  ·  Fuente: facebook/fresco

Descripción

Actualice a la versión 1.8.0, Crashlytic informa estos problemas.
Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:522) at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:420) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:370) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:335) at com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:42) at com.facebook.imagepipeline.memory.NativeMemoryChunk.<clinit>(NativeMemoryChunk.java:33) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:58) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:20) at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:257) at com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.<init>(NativePooledByteBufferOutputStream.java:51) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:98) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:26) at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:89) at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:101) at com.facebook.imagepipeline.producers.LocalResourceFetchProducer.getEncodedImage(LocalResourceFetchProducer.java:39) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:54) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:50) at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:45) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1115) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:590) at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:53) at java.lang.Thread.run(Thread.java:818)

Fatal Exception: java.lang.UnsatisfiedLinkError: com.facebook.imagepipeline.memory.NativeMemoryChunk at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:58) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:20) at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:257) at com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.<init>(NativePooledByteBufferOutputStream.java:51) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:98) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:26) at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:89) at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:101) at com.facebook.imagepipeline.producers.LocalResourceFetchProducer.getEncodedImage(LocalResourceFetchProducer.java:39) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:54) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:50) at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:45) 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:53) at java.lang.Thread.run(Thread.java:818)

Reproducción

Solución

Quiero saber si la actualización a 1.8.1 puede solucionar estos problemas o necesito agregar compile 'com.facebook.soloader:soloader:0.1.0+' a build.gradle

Información Adicional

  • Versión Fresco:
    compile 'com.facebook.fresco:fresco:1.8.0'
    compile 'com.facebook.fresco:animated-gif:1.8.10'
  • Versión de la plataforma:
    OPPO - SO: Android 5.1.1
    DISPOSITIVO: R7sfg / R7g / A51fa
bug enhancement

Comentario más útil

Yo uso la versión 1.8.1 también tengo el mismo problema. El dispositivo es VIVO X7 (Android 5.1.1, arm64-v8a).

FrescoIoBoundExecutor-2 (121704)

java.lang.UnsatisfiedLinkError

com.facebook.imagepipeline.memory.NativeMemoryChunk

1 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:58)

2 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:20)
3 com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
4 com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
5 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:98)
6 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:26)
7 com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage (LocalFetchProducer.java:89)
8 com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage (LocalFetchProducer.java:101)
9 com.facebook.imagepipeline.producers.LocalFileFetchProducer.getEncodedImage (LocalFileFetchProducer.java:34)
10 com.facebook.imagepipeline.producers.LocalFetchProducer $ 1.getResult (LocalFetchProducer.java:54)
11 com.facebook.imagepipeline.producers.LocalFetchProducer $ 1.getResult (LocalFetchProducer.java:50)
12 com.facebook.common.executors.StatefulRunnable.run (StatefulRunnable.java:45)
13 java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
14 java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
15 com.facebook.imagepipeline.core.PriorityThreadFactory $ 1.run (PriorityThreadFactory.java:53)
16 java.lang.Thread.run (Thread.java:818)

FrescoIoBoundExecutor-1 (121150)

java.lang.UnsatisfiedLinkError

no se pudo encontrar DSO para cargar: libimagepipeline.so

1 com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:522)

2 com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:420)
3 com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:370)
4 com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:335)
5 com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load (ImagePipelineNativeLoader.java:42)
6 com.facebook.imagepipeline.memory.NativeMemoryChunk.(NativeMemoryChunk.java:33)
7 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:58)
8 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:20)
9 com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
10 com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
11 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:98)
12 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:26)
13 com.facebook.imagepipeline.cache.BufferedDiskCache.readFromDiskCache (BufferedDiskCache.java:336)
14 com.facebook.imagepipeline.cache.BufferedDiskCache.access $ 400 (BufferedDiskCache.java:36)
15 com.facebook.imagepipeline.cache.BufferedDiskCache $ 2.call (BufferedDiskCache.java:182)
16 com.facebook.imagepipeline.cache.BufferedDiskCache $ 2.call (BufferedDiskCache.java:166)
17 tornillos Tarea $ 4.run (Task.java:357)
18 java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
19 java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
20 com.facebook.imagepipeline.core.PriorityThreadFactory $ 1.run (PriorityThreadFactory.java:53)
21 java.lang.Thread.run (Thread.java:818)

Todos 87 comentarios

¿Cómo está configurada tu construcción? ¿Está utilizando divisiones ABI? http://frescolib.org/docs/shipping.html

@oprisnik
mi configuración de construcción
android { compileSdkVersion 27 buildToolsVersion '27.0.3' defaultConfig { applicationId "com.mobix.pinecone" minSdkVersion 15 targetSdkVersion 27 versionCode 83 versionName '5.42' multiDexEnabled true } buildTypes { release { minifyEnabled false multiDexKeepProguard file("proguard.multidex.config") } debug { minifyEnabled false multiDexKeepProguard file("proguard.multidex.config") } } productFlavors { } dexOptions { jumboMode true javaMaxHeapSize "4g" } testOptions { unitTests.returnDefaultValues = true } }

y configuración multidex
-keepclassmembers class * implements android.os.Parcelable { static ** CREATOR; } -dontwarn com.google.android.gms.** -keep class com.google.android.gms.** { *; } -keep class com.google.firebase.** { *; } -keep class io.realm.** { *; } -keep class io.branch.** { *; } -keep class io.fabric.sdk.android.** { *; } -keep class io.socket.** { *; } -keep class com.google.android.youtube.** { *; } -keep class com.crashlytics.android.** { *; } -keep class com.facebook.internal.FacebookInitProvider.** { *; } -keep class com.facebook.FacebookSdk.** { *; } -keep class com.facebook.appevents.AppEventsLogger.** { *; } -keep class com.facebook.common.memory.MemoryTrimmableRegistry.** { *; } -keep class com.facebook.drawee.backends.pipeline.Fresco.** { *; } -keep class com.facebook.imagepipeline.core.ImagePipelineConfig.** { *; } -keep class me.zhanghai.android.materialprogressbar.** { *; } -keep class com.nguyenhoanglam.imagepicker.** { *;} -keep class com.iarcuschin.simpleratingbar.** { *;} -keep class android.support.v4.app.NotificationManagerCompat.** { *;}

No sé por qué solo sucede en OPPO - OS: Android 5.1.1 y antes de actualizar a la versión 1.8.0, estos problemas no ocurren con la misma configuración de compilación

Hola @hsandyque , no necesitas la dependencia adicional de soloader ya que ahora se envía con Fresco desde 1.8.0. Recomiendo actualizar a 1.8.1 ya que corrige otros errores.

Su archivo build.gradle debe hacer referencia al archivo proguard-fresco.pro como se describe en el enlace que publicó @oprisnik .

Para aclarar: ¿este error _sólo_ ocurre en ese dispositivo en particular? ¿Hay alguna salida de adb logcat que pueda compartir?

Hola @lambdapioneer ,
Para aclarar: ¿este error solo ocurre en ese dispositivo en particular? ¿Hay algún resultado de adb logcat que pueda compartir?
Sí, solo ocurre en dispositivos OPPO Android 5.1.1 (R7sfg / R7g / A51fa)
Y los adjuntos son logcats
1.txt
2.txt

Hola @hsandyque , dado que solo sucede con los teléfonos Oppo, sugiere que la forma en que se agrupan las bibliotecas binarias y la forma en que el teléfono las carga no funciona bien.

No tengo acceso a un teléfono OPPO en este momento y no pude encontrar mejores consejos al buscar: /

(a) ¿Esto también sucede al instalar la aplicación de presentación que tenemos en nuestro repositorio? (eso me acercaría a depurar esto una vez que tenga un teléfono OPPO)
(b) ¿Puede proporcionar el resultado de ejecutar unzip -l your_release.apk | grep lib/ en su APK de lanzamiento? Eso mostrará qué archivos están realmente empaquetados.

Hola @lambdapioneer ,

No tengo un teléfono OPPO (Android 5.1.1), estos problemas informan de Crashlytics. No sé si esto también ocurre en la aplicación de presentación.

Y la lista de paquetes de la siguiente manera
158176 00-00-1980 00:00 lib/arm64-v8a/libgifimage.so 383192 00-00-1980 00:00 lib/arm64-v8a/libimagepipeline.so 3107040 00-00-1980 00:00 lib/arm64-v8a/librealm-jni.so 91980 00-00-1980 00:00 lib/armeabi-v7a/libgifimage.so 255696 00-00-1980 00:00 lib/armeabi-v7a/libimagepipeline.so 1877536 00-00-1980 00:00 lib/armeabi-v7a/librealm-jni.so 100168 00-00-1980 00:00 lib/armeabi/libgifimage.so 313028 00-00-1980 00:00 lib/armeabi/libimagepipeline.so 4058380 00-00-1980 00:00 lib/mips/librealm-jni.so 145240 00-00-1980 00:00 lib/x86/libgifimage.so 452312 00-00-1980 00:00 lib/x86/libimagepipeline.so 3397252 00-00-1980 00:00 lib/x86/librealm-jni.so 150360 00-00-1980 00:00 lib/x86_64/libgifimage.so 477784 00-00-1980 00:00 lib/x86_64/libimagepipeline.so 3336720 00-00-1980 00:00 lib/x86_64/librealm-jni.so

Hola @lambdapioneer ,
más registro
02-21 15:14:44.524 25391-25537/com.mobix.pinecone E/art: dlopen("/data/data/com.mobix.pinecone/lib-main/libimagepipeline.so", RTLD_LAZY) failed: dlopen failed: "/data/data/com.mobix.pinecone/lib-main/libimagepipeline.so" is 64-bit instead of 32-bit 02-21 15:14:44.524 25391-25537/com.mobix.pinecone E/SoLoader: Could not load: libimagepipeline.so 02-21 15:14:44.537 25391-25537/com.mobix.pinecone E/AndroidRuntime: FATAL EXCEPTION: FrescoIoBoundExecutor-2 Process: com.mobix.pinecone, PID: 25391 java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:522) at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:420) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:370) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:335) at com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:42) at com.facebook.imagepipeline.memory.NativeMemoryChunk.<clinit>(NativeMemoryChunk.java:33) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:58) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:20) at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:257) at com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.<init>(NativePooledByteBufferOutputStream.java:51) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:98) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:26) at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:89) at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:101) at com.facebook.imagepipeline.producers.LocalResourceFetchProducer.getEncodedImage(LocalResourceFetchProducer.java:39) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:54) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:50) at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:45) 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:53) at java.lang.Thread.run(Thread.java:818)

Hola @oprisnik
Tengo el mismo problema, ¿cómo solucionarlo?

java.lang.UnsatisfiedLinkError: no se pudo encontrar DSO para cargar: libimagepipeline.so
en com.facebook.soloader.jb (archivo fuente: 522)
en com.facebook.soloader.ja (archivo fuente: 420)
en com.facebook.soloader.ja (archivo fuente: 370)
en com.facebook.soloader.ja (archivo fuente: 335)
en com.facebook.imagepipeline.nativecode.aa (SourceFile: 42)
en com.facebook.imagepipeline.memory.NativeMemoryChunk.(Archivo fuente: 33)
en com.facebook.imagepipeline.memory.li (archivo fuente: 58)
en com.facebook.imagepipeline.memory.lb (SourceFile: 20)
en com.facebook.imagepipeline.memory.aa (SourceFile: 257)
en com.facebook.imagepipeline.memory.o.(Archivo fuente: 51)
en com.facebook.imagepipeline.memory.nb (SourceFile: 98)
en com.facebook.imagepipeline.memory.na (archivo fuente: 26)
en com.facebook.imagepipeline.producers.za (archivo fuente: 89)
en com.facebook.imagepipeline.producers.zb (SourceFile: 101)
en com.facebook.imagepipeline.producers.aa.a (SourceFile: 34)
en com.facebook.imagepipeline.producers.z $ 1.d (archivo fuente: 54)
en com.facebook.imagepipeline.producers.z $ 1.c (SourceFile: 50)
en com.facebook.common.berun (archivo fuente: 45)
en java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
en java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
en com.facebook.imagepipeline.dk $ 1.run (SourceFile: 53)
en java.lang.Thread.run (Thread.java:818)

@hsandyque

¿Especifica algún filtro ABI (tipo de CPU) en los archivos gradle de sus aplicaciones?

@erikandre
No uso ningún filtro ABI en mi archivo gradle y ya enumero la configuración detallada en la respuesta anterior

Yo uso la versión 1.8.1 también tengo el mismo problema. El dispositivo es VIVO X7 (Android 5.1.1, arm64-v8a).

FrescoIoBoundExecutor-2 (121704)

java.lang.UnsatisfiedLinkError

com.facebook.imagepipeline.memory.NativeMemoryChunk

1 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:58)

2 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:20)
3 com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
4 com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
5 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:98)
6 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:26)
7 com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage (LocalFetchProducer.java:89)
8 com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage (LocalFetchProducer.java:101)
9 com.facebook.imagepipeline.producers.LocalFileFetchProducer.getEncodedImage (LocalFileFetchProducer.java:34)
10 com.facebook.imagepipeline.producers.LocalFetchProducer $ 1.getResult (LocalFetchProducer.java:54)
11 com.facebook.imagepipeline.producers.LocalFetchProducer $ 1.getResult (LocalFetchProducer.java:50)
12 com.facebook.common.executors.StatefulRunnable.run (StatefulRunnable.java:45)
13 java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
14 java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
15 com.facebook.imagepipeline.core.PriorityThreadFactory $ 1.run (PriorityThreadFactory.java:53)
16 java.lang.Thread.run (Thread.java:818)

FrescoIoBoundExecutor-1 (121150)

java.lang.UnsatisfiedLinkError

no se pudo encontrar DSO para cargar: libimagepipeline.so

1 com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:522)

2 com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:420)
3 com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:370)
4 com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:335)
5 com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load (ImagePipelineNativeLoader.java:42)
6 com.facebook.imagepipeline.memory.NativeMemoryChunk.(NativeMemoryChunk.java:33)
7 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:58)
8 com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:20)
9 com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
10 com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
11 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:98)
12 com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer (NativePooledByteBufferFactory.java:26)
13 com.facebook.imagepipeline.cache.BufferedDiskCache.readFromDiskCache (BufferedDiskCache.java:336)
14 com.facebook.imagepipeline.cache.BufferedDiskCache.access $ 400 (BufferedDiskCache.java:36)
15 com.facebook.imagepipeline.cache.BufferedDiskCache $ 2.call (BufferedDiskCache.java:182)
16 com.facebook.imagepipeline.cache.BufferedDiskCache $ 2.call (BufferedDiskCache.java:166)
17 tornillos Tarea $ 4.run (Task.java:357)
18 java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
19 java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
20 com.facebook.imagepipeline.core.PriorityThreadFactory $ 1.run (PriorityThreadFactory.java:53)
21 java.lang.Thread.run (Thread.java:818)

¿Alguna solución? Este es mi registro
Excepción fatal: java.lang.UnsatisfiedLinkError: no se pudo encontrar DSO para cargar: libimagepipeline.so
en com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:522)
en com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:420)
en com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:370)
en com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:335)
en com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load (ImagePipelineNativeLoader.java:42)
en com.facebook.imagepipeline.memory.NativeMemoryChunk.(NativeMemoryChunk.java:33)
en com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:58)
en com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:20)
en com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
en com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
en com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream (NativePooledByteBufferFactory.java:141)
en com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream (NativePooledByteBufferFactory.java:26)
en com.facebook.imagepipeline.producers.NetworkFetchProducer.onResponse (NetworkFetchProducer.java:90)
en com.facebook.imagepipeline.producers.NetworkFetchProducer $ 1.onResponse (NetworkFetchProducer.java:70)
en com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher $ 2.onResponse (OkHttpNetworkFetcher.java:180)
en okhttp3.RealCall $ AsyncCall.execute (RealCall.java:153)
en okhttp3.internal.NamedRunnable.run (NamedRunnable.java:32)
en java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
en java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
en java.lang.Thread.run (Thread.java:818)

image

@ wangshuwen1107 @ csbz17027 @ignaciogs
Debido a que Facebook todavía está comprobando el problema, encontré la solución alternativa que puede solucionar temporalmente este problema.

dlopen("/data/data/xxx/lib-main/libimagepipeline.so", RTLD_LAZY) failed: dlopen failed: "/data/data/xxx/lib-main/libimagepipeline.so" is 64-bit instead of 32-bit

El registro que encontré es que estos dispositivos específicos ejecutan la aplicación en 32 bits (no sé por qué, tal vez el error del marco) pero libimagepipeline.so es de 64 bits.

Agregue el filtro api como el siguiente complemento de código, omita el "arm64-v8a"
defaultConfig { ... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64" } }
No es la solución correcta, pero tal vez solucione el problema al principio y luego esperamos la actualización.

@hsandyque muchas gracias, su respuesta es muy útil, Esperamos su actualización!

@oprisnik @erikandre @lambdapioneer
¿Tiene alguna idea sobre cómo solucionar este problema?

@hsandyque , ¿carga alguna otra dependencia de modo que el sistema pueda confundirse con una combinación de bibliotecas de 32 bits y 64 bits?

En este caso, te sugiero que vayas con la siguiente línea abiFilters :

abiFilters "armeabi", "armeabi-v7a", "x86", "mips"}

Tal vez incluso elimine mips completo si no se dirige específicamente a un dispositivo especial.

Todavía tengo este problema en v1.9.0.

Añadiendo

        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }

Trabajó para mi. Pero al leer la conversación anterior, ¿parece que no es la solución "correcta"?

Mi equipo tiene el mismo problema, no ha recibido tantos informes de fallas (OOM de causa fresco) de una tercera biblioteca como esta, ¡es hora de decir adiós!

yo suelo
ndk { abiFilters "armeabi,armeabi-v7a" }
y
compile 'com.facebook.fresco:fresco:1.8.0' compile 'com.facebook.fresco:animated-gif:1.8.0' compile 'com.facebook.fresco:animated-webp:1.8.0' compile 'com.facebook.fresco:webpsupport:1.8.0'
también tienen el mismo accidente.

Todavía tengo este problema en v1.9.0.

Aún enfrenta ese problema en 1.9.0 con abis "armeabi", "armeabi-v7a", "x86" compatibles

Todavía tengo este problema en v1.9.0.

También tengo el mismo problema. Mi aplicación falla al abrirse. Ocurre solo en HTC One E9PLUS dual sim que se ejecuta en Android 5.0.2
Error: Excepción fatal: java.lang.UnsatisfiedLinkError
no se pudo encontrar DSO para cargar: libimagepipeline.so

ACTUALIZACIÓN: Para aquellos que tenemos este problema, consulte la guía de producción en el sitio web de Fresco , que resuelve nuestro problema.

También viendo este problema en una variedad de dispositivos:
image

Usando Fresco versión 1.9.0 y filtros ABI para reducir el tamaño del APK:

ndk {
    abiFilters "armeabi-v7a", "x86"
}

Este problema comenzó a ocurrirnos cuando actualizamos Fresco de 1.5.0 a 1.9.0. Esto también implicó eliminar el uso de ReLinker y eliminar el archivo proguard-fresco.pro incluido explícitamente.

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.

Protuberancia. Este es todavía un problema en curso. Este bloqueo se produjo después de actualizar de 1.5.0 a 1.9.0 y no se ha proporcionado una solución que funcione para mí.

@jmbusby solo está apuntando al brazo v7a. ¿Algunos de los dispositivos podrían ser armv6 o incluso armv5? Por ejemplo, parece haber bastantes dispositivos ZTE con v6 según https://forum.xda-developers.com/showthread.php?t=1596800

@oprisnik Creo que es poco probable, ya que el teléfono más común que falla es un Asus Zenfone 3 Max que tiene un procesador ARM v8. El teléfono ZTE más común es un Blade V7, también con ARM v8.

Veo este problema al migrar a 1.10 desde 1.8.1

Un par de componentes que usamos en nuestra aplicación nos obligan a usar solo las divisiones 'armeabi' y 'x86' ... y mirando el archivo aar de Imagepipeline para v-1.10, la variante 'armeabi' está ausente. ¿Será este el caso en el futuro? ¿Está abandonando el soporte para esa arquitectura?
Sin embargo, los archivos .so están presentes en 1.9.

Cualquier pista aquí

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.

El problema sigue ahí

Hola chicos, bueno 'verte' de nuevo.

@lambdapioneer, @oprisnik este problema se ha informado en varias encarnaciones desde Fresco 0,1. El problema está en la gran cantidad de dispositivos que cargan bibliotecas, algunos de ellos seguramente tendrán problemas.

La solución recomendada (dividir el APK) causa otros problemas. Entre otras cosas, dividir el APK requiere códigos de versión separados para cada ABI. Cuando ya tiene varios sabores de productos y tipos de compilación, todos los cuales son administrados por complementos externos como hockeyapp, la división hace que los ojos del equipo se caigan. En este punto, sería más fácil cambiar a Glide que hacerlo.

NativePooledByteBuffer no es realmente tan importante para API> = 21, que es a lo que se dirigen ahora muchas aplicaciones (Dalvik ahora se ha reducido al 10%). Podría valer la pena hacerlo opcional y solo usar la memoria estándar de Java para las plataformas posteriores.

Podría trabajar en esto más tarde, pero sospecho que preferiría que alguien todavía en FB lo haga :)

¡Hola @tyronen! Mucho tiempo sin verte' :)

Buen momento, en realidad tenemos a alguien trabajando en esto en este momento (una versión Java de NativePooledByteBuffer y clases similares), por lo que esto debería solucionarse pronto.

Sin embargo, tenemos muchos otros temas abiertos e ideas para futuras mejoras si desea contribuir nuevamente.
También tenemos en mente algunos cambios más importantes tanto para Drawee como para el pipeline, por lo que es probable que las cosas cambien pronto.

Samsung Galaxy S9 Android 8 todavía no funciona.

También me encuentro con este problema. Esto sucedió en el teléfono OPPO A51 , aparece mientras estoy usando Fresco v1.8.1 pero no apareció dentro de v0.12.0

¿Entonces supongo que esto simplemente será ignorado? Fallo en los dispositivos más populares a partir de la versión 1.8 ...

api 'com.facebook. fresco: fresco : 1.10.0 '
😂😂😂

¿cualquier actualización?

Mismo problema aquí
Problema de casi 8 meses.
¿Alguna solución alternativa? ¿Funciona la degradación de fresco y el uso de soloader?

Hola a todos, entiendo la frustración con este problema.

Quiero hacerle saber que estamos al tanto de los (varios) problemas con el código nativo y los problemas que causa. Estamos trabajando activamente para permitir el uso de Fresco sin ningún código nativo (consulte, por ejemplo, ImagePipelineExperiments # disableNativeCode ). Podría estar listo con la versión v1.11 o v1.12. Felicitaciones a @MikaelMorales

En temas como este, es muy difícil para nosotros avanzar sin una reproducción completa con la que podamos trabajar. Aquí parece que tener fragmentos del archivo build.gradle no es suficiente. Tendría que ser un proyecto mínimo, pero completo.

Si tiene una reproducción local, puede ayudarnos mucho a nosotros y a todos en este hilo:

  • Comprobando si se reproduce con la aplicación de presentación
  • Luego, gradualmente, vaya de la aplicación de presentación a la configuración de su compilación y observe en qué punto se rompe

¡Este es un problema en el que necesitamos mucho su ayuda! He añadido la etiqueta "bug" para que stale-bot se mantenga en silencio.

@ ch4ndu , ha observado correctamente que a armeabi le faltan las últimas versiones de Fresco. Se eliminó en NDK r17 (https://developer.android.com/ndk/guides/abis)

W / System.err: java.lang.UnsatisfiedLinkError: no se pudo encontrar DSO para cargar: libimagepipeline.so
Como arreglarlo

ndk {abiFilters "armeabi"}
implementación 'com.facebook. fresco: fresco : 1.11.0 '
implementación 'com.facebook. fresco: gif animado : 1.11.0 '
implementación 'com.facebook. fresco: animado-webp : 1.11.0 '
implementación 'com.facebook. fresco: webpsupport : 1.11.0 '

Hola, podría haber encontrado otra forma de reproducir este problema.

Usamos Fresco 1.11 para cargar algunas imágenes estáticas y GIF animados en nuestra aplicación. Ambos funcionan bien cuando creamos e instalamos APK, pero no cuando creamos paquetes de aplicaciones desde Android Studio y usamos bundletool para compilar ( build-apks ) e instalar ( install-apks ) los APK. En ese caso, los GIF no se cargan, pero la aplicación no se bloquea cuando intentamos cargarlos y, al intentar cargar una imagen estática, se bloquea la aplicación ( couldn't find DSO to load: libimagepipeline.so ).

Intentamos configurar .experiment().setNativeCodeDisabled(true) en ImagePipelineConfig de Fresco y con eso las imágenes estáticas funcionan, pero los GIF fallan con un error diferente ( couldn't find DSO to load: libgifimage.so ). Incluso si esto funcionara, no nos sentiríamos cómodos usando algo llamado ".experiment ()" en producción.

Estoy usando Android Gradle Plugin 3.2.1, Android Studio 3.3 beta 4 y bundletool 0.7.1. Estoy probando en un teléfono con Android 8.1.0.

¿Hay alguna forma de usar Fresco con paquetes de aplicaciones de manera confiable? Esto nos impide pasar al nuevo formato en este momento. ¡Gracias!

Este es el problema al intentar cargar GIF después de activar el experimento:

11-22 16:39:03.339 18019 18019 D SoLoader: init start
11-22 16:39:03.340 18019 18019 D SoLoader: adding system library source: /vendor/lib
11-22 16:39:03.340 18019 18019 D SoLoader: adding system library source: /system/lib
11-22 16:39:03.340 18019 18019 D SoLoader: adding application source: com.facebook.soloader.DirectorySoSource[root = /data/app/com.packagename--UQkiLx1zhtubNxSl35TMg==/lib/arm64 flags = 0]
11-22 16:39:03.341 18019 18019 D SoLoader: adding backup  source: com.facebook.soloader.ApkSoSource[root = /data/data/com.packagename/lib-main flags = 1]
11-22 16:39:03.341 18019 18019 D SoLoader: Preparing SO source: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
11-22 16:39:03.341 18019 18019 D SoLoader: Preparing SO source: com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
11-22 16:39:03.341 18019 18019 D SoLoader: Preparing SO source: com.facebook.soloader.DirectorySoSource[root = /data/app/com.packagename--UQkiLx1zhtubNxSl35TMg==/lib/arm64 flags = 0]
11-22 16:39:03.342 18019 18019 D SoLoader: Preparing SO source: com.facebook.soloader.ApkSoSource[root = /data/data/com.packagename/lib-main flags = 1]
11-22 16:39:03.343 18019 18019 V fb-UnpackingSoSource: locked dso store /data/user/0/com.packagename/lib-main
11-22 16:39:03.347 18019 18019 I fb-UnpackingSoSource: dso store is up-to-date: /data/user/0/com.packagename/lib-main
11-22 16:39:03.347 18019 18019 V fb-UnpackingSoSource: releasing dso store lock for /data/user/0/com.packagename/lib-main
11-22 16:39:03.347 18019 18019 D SoLoader: init finish: 4 SO sources prepared
11-22 16:39:03.347 18019 18019 D SoLoader: init exiting

11-22 16:39:04.327 18019 18293 D SoLoader: About to load: libgifimage.so
11-22 16:39:04.328 18019 18293 D SoLoader: libgifimage.so not found on /data/data/com.packagename/lib-main
11-22 16:39:04.328 18019 18293 D SoLoader: libgifimage.so not found on /data/app/com.packagename--UQkiLx1zhtubNxSl35TMg==/lib/arm64
11-22 16:39:04.329 18019 18293 D SoLoader: libgifimage.so not found on /vendor/lib
11-22 16:39:04.329 18019 18293 D SoLoader: libgifimage.so not found on /system/lib
11-22 16:39:04.339 18019 18293 E SoLoader: couldn't find DSO to load: libgifimage.so
11-22 16:39:04.348 18019 18293 E AndroidRuntime: FATAL EXCEPTION: FrescoDecodeExecutor-2
11-22 16:39:04.348 18019 18293 E AndroidRuntime: Process: com.packagename, PID: 18019
11-22 16:39:04.348 18019 18293 E AndroidRuntime: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libgifimage.so
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:703)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:564)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:500)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:455)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.animated.gif.GifImage.ensure(GifImage.java:42)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.animated.gif.GifImage.create(GifImage.java:70)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.animated.gif.GifImage.decode(GifImage.java:89)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.animated.factory.AnimatedImageFactoryImpl.decodeGif(AnimatedImageFactoryImpl.java:85)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.fresco.animation.factory.AnimatedFactoryV2Impl$1.decode(AnimatedFactoryV2Impl.java:86)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decodeGif(DefaultImageDecoder.java:136)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.decoder.DefaultImageDecoder$1.decode(DefaultImageDecoder.java:60)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decode(DefaultImageDecoder.java:121)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:276)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$200(DecodeProducer.java:123)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:165)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:202)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:22)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:73)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51)
11-22 16:39:04.348 18019 18293 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:764)

El fallo al intentar cargar imágenes estáticas antes de activar el experimento se muestra a continuación. Los seguimientos son similares ( couldn't find DSO to load: libimagepipeline.so ) cuando se intenta cargar GIF pero sin llegar a la excepción fatal.

11-22 16:08:49.551 13724 13724 D SoLoader: init start
11-22 16:08:49.551 13724 13724 D SoLoader: adding system library source: /vendor/lib
11-22 16:08:49.551 13724 13724 D SoLoader: adding system library source: /system/lib
11-22 16:08:49.552 13724 13724 D SoLoader: adding application source: com.facebook.soloader.DirectorySoSource[root = /data/app/com.packagename-VWSKdOesFkJ5ehUD4vU9aw==/lib/arm64 flags = 0]
11-22 16:08:49.552 13724 13724 D SoLoader: adding backup  source: com.facebook.soloader.ApkSoSource[root = /data/data/com.packagename/lib-main flags = 1]
11-22 16:08:49.552 13724 13724 D SoLoader: Preparing SO source: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
11-22 16:08:49.553 13724 13724 D SoLoader: Preparing SO source: com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
11-22 16:08:49.553 13724 13724 D SoLoader: Preparing SO source: com.facebook.soloader.DirectorySoSource[root = /data/app/com.packagename-VWSKdOesFkJ5ehUD4vU9aw==/lib/arm64 flags = 0]
11-22 16:08:49.553 13724 13724 D SoLoader: Preparing SO source: com.facebook.soloader.ApkSoSource[root = /data/data/com.packagename/lib-main flags = 1]
11-22 16:08:49.554 13724 13724 V fb-UnpackingSoSource: locked dso store /data/user/0/com.packagename/lib-main
11-22 16:08:49.556 13724 13724 I fb-UnpackingSoSource: dso store is up-to-date: /data/user/0/com.packagename/lib-main
11-22 16:08:49.556 13724 13724 V fb-UnpackingSoSource: releasing dso store lock for /data/user/0/com.packagename/lib-main
11-22 16:08:49.556 13724 13724 D SoLoader: init finish: 4 SO sources prepared
11-22 16:08:49.556 13724 13724 D SoLoader: init exiting

11-22 16:08:50.468 13724 13809 D SoLoader: About to load: libimagepipeline.so
11-22 16:08:50.472 13724 13809 D SoLoader: libimagepipeline.so not found on /data/data/com.packagename/lib-main
11-22 16:08:50.472 13724 13809 D SoLoader: libimagepipeline.so not found on /data/app/com.packagename-VWSKdOesFkJ5ehUD4vU9aw==/lib/arm64
11-22 16:08:50.472 13724 13809 D SoLoader: libimagepipeline.so not found on /vendor/lib
11-22 16:08:50.473 13724 13809 D SoLoader: libimagepipeline.so not found on /system/lib
11-22 16:08:50.476 13724 13809 E SoLoader: couldn't find DSO to load: libimagepipeline.so
11-22 16:08:50.480 13724 13815 I zygote64: Rejecting re-init on previously-failed class java.lang.Class<com.facebook.imagepipeline.memory.NativeMemoryChunk>: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so
11-22 16:08:50.481 13724 13815 I zygote64:   at void com.facebook.soloader.SoLoader.doLoadLibraryBySoName(java.lang.String, int, android.os.StrictMode$ThreadPolicy) (SoLoader.java:703)
11-22 16:08:50.481 13724 13815 I zygote64:   at boolean com.facebook.soloader.SoLoader.loadLibraryBySoName(java.lang.String, java.lang.String, java.lang.String, int, android.os.StrictMode$ThreadPolicy) (SoLoader.java:564)
11-22 16:08:50.481 13724 13815 I zygote64:   at boolean com.facebook.soloader.SoLoader.loadLibrary(java.lang.String, int) (SoLoader.java:500)
11-22 16:08:50.481 13724 13815 I zygote64:   at boolean com.facebook.soloader.SoLoader.loadLibrary(java.lang.String) (SoLoader.java:455)
11-22 16:08:50.481 13724 13815 I zygote64:   at void com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load() (ImagePipelineNativeLoader.java:40)
11-22 16:08:50.481 13724 13815 I zygote64:   at void com.facebook.imagepipeline.memory.NativeMemoryChunk.<clinit>() (NativeMemoryChunk.java:31)
11-22 16:08:50.481 13724 13815 I zygote64:   at com.facebook.imagepipeline.memory.NativeMemoryChunk com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(int) (NativeMemoryChunkPool.java:25)
11-22 16:08:50.481 13724 13815 I zygote64:   at java.lang.Object com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(int) (NativeMemoryChunkPool.java:13)
11-22 16:08:50.481 13724 13815 I zygote64:   at java.lang.Object com.facebook.imagepipeline.memory.BasePool.get(int) (BasePool.java:267)
11-22 16:08:50.481 13724 13815 I zygote64:   at void com.facebook.imagepipeline.memory.MemoryPooledByteBufferOutputStream.<init>(com.facebook.imagepipeline.memory.MemoryChunkPool, int) (MemoryPooledByteBufferOutputStream.java:51)
11-22 16:08:50.481 13724 13815 I zygote64:   at com.facebook.imagepipeline.memory.MemoryPooledByteBuffer com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(java.io.InputStream, int) (MemoryPooledByteBufferFactory.java:73)
11-22 16:08:50.481 13724 13815 I zygote64:   at com.facebook.common.memory.PooledByteBuffer com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(java.io.InputStream, int) (MemoryPooledByteBufferFactory.java:24)
11-22 16:08:50.481 13724 13815 I zygote64:   at com.facebook.imagepipeline.image.EncodedImage com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(java.io.InputStream, int) (LocalFetchProducer.java:87)
11-22 16:08:50.481 13724 13815 I zygote64:   at com.facebook.imagepipeline.image.EncodedImage com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(java.io.InputStream, int) (LocalFetchProducer.java:99)
11-22 16:08:50.481 13724 13815 I zygote64:   at com.facebook.imagepipeline.image.EncodedImage com.facebook.imagepipeline.producers.LocalAssetFetchProducer.getEncodedImage(com.facebook.imagepipeline.request.ImageRequest) (LocalAssetFetchProducer.java:37)
11-22 16:08:50.481 13724 13815 I zygote64:   at com.facebook.imagepipeline.image.EncodedImage com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult() (LocalFetchProducer.java:52)
11-22 16:08:50.481 13724 13815 I zygote64:   at java.lang.Object com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult() (LocalFetchProducer.java:48)
11-22 16:08:50.481 13724 13815 I zygote64:   at void com.facebook.common.executors.StatefulRunnable.run() (StatefulRunnable.java:43)
11-22 16:08:50.481 13724 13815 I zygote64:   at void java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) (ThreadPoolExecutor.java:1162)
11-22 16:08:50.481 13724 13815 I zygote64:   at void java.util.concurrent.ThreadPoolExecutor$Worker.run() (ThreadPoolExecutor.java:636)
11-22 16:08:50.481 13724 13815 I zygote64:   at void com.facebook.imagepipeline.core.PriorityThreadFactory$1.run() (PriorityThreadFactory.java:51)
11-22 16:08:50.481 13724 13815 I zygote64:   at void java.lang.Thread.run() (Thread.java:764)
11-22 16:08:50.481 13724 13815 I zygote64: 
11-22 16:08:50.507 13724 13809 E AndroidRuntime: FATAL EXCEPTION: FrescoIoBoundExecutor-1
11-22 16:08:50.507 13724 13809 E AndroidRuntime: Process: com.packagename, PID: 13724
11-22 16:08:50.507 13724 13809 E AndroidRuntime: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:703)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:564)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:500)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:455)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:40)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.memory.NativeMemoryChunk.<clinit>(NativeMemoryChunk.java:31)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:25)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:13)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:267)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferOutputStream.<init>(MemoryPooledByteBufferOutputStream.java:51)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:73)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:24)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:87)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:99)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalAssetFetchProducer.getEncodedImage(LocalAssetFetchProducer.java:37)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:52)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:48)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:43)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51)
11-22 16:08:50.507 13724 13809 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:764)
11-22 16:08:50.512 13724 13810 E AndroidRuntime: FATAL EXCEPTION: FrescoIoBoundExecutor-2
11-22 16:08:50.512 13724 13810 E AndroidRuntime: Process: com.packagename, PID: 13724
11-22 16:08:50.512 13724 13810 E AndroidRuntime: java.lang.NoClassDefFoundError: <clinit> failed for class com.facebook.imagepipeline.memory.NativeMemoryChunk; see exception in other thread
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:25)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:13)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:267)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferOutputStream.<init>(MemoryPooledByteBufferOutputStream.java:51)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:73)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:24)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:87)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:99)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalAssetFetchProducer.getEncodedImage(LocalAssetFetchProducer.java:37)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:52)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:48)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:43)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51)
11-22 16:08:50.512 13724 13810 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:764)

Hola de nuevo,

Intenté reproducir el problema con la aplicación de presentación, revisando la etiqueta v1.11.0, pero no se compila. Intenté seguir https://frescolib.org/docs/building-from-source.html pero creo que eso es obsoleto (por ejemplo, habla de la carpeta android-ndk / r10e pero eso no existe en mi instalación y la versión más reciente es r18b).

Si intento ejecutar la aplicación de presentación desde Android Studio, obtengo Process 'command '<mySdkPath>/ndk-bundle/ndk-build'' finished with non-zero exit value 2 .

Ejecutando ./gradlew build desde la línea de comando, obtengo:

> Task :imagepipeline:ndk_build_bitmaps FAILED
A problem was found with the configuration of task ':imagepipeline:ndk_build_bitmaps'. Registering invalid inputs and outputs via TaskInputs and TaskOutputs methods has been deprecated and is scheduled to be removed in Gradle 5.0.
 - File '<myWorkspace>/fresco/imagepipeline/src/main/jni/bitmaps' specified for property '$1' is not a file.
Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-16.    
make: Entering directory `<myWorkspace>/fresco/imagepipeline/src/main/jni/bitmaps'
<mySdkPath>/ndk-bundle/build/core/add-application.mk:178: *** make: Leaving directory `<myWorkspace>/fresco/imagepipeline/src/main/jni/bitmaps'
Android NDK: APP_STL gnustl_static is no longer supported. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information.    .  Stop.

FAILURE: Build failed with an exception.

Intenté configurar APP_PLATFORM en diferentes valores y la línea al respecto desaparece, pero el error es el mismo.

Este problema todavía ocurre con Android Studio 3.3 RC 1.

¡ayúdame!

java.lang.UnsatisfiedLinkError: no se pudo encontrar DSO para cargar: libimagepipeline.so causado por: error de dlopen: "/data/data/com.vipabc.vipmobilejr.phone/lib-main/libimagepipeline.so" es de 64 bits en su lugar de 32 bits

Solo aparece este problema cuando uso la integración okhttp.
Pero sin él, mi aplicación no comenzará a descargar imágenes.

Hola a todos, entiendo la frustración con este problema.

Quiero hacerle saber que estamos al tanto de los (varios) problemas con el código nativo y los problemas que causa. Estamos trabajando activamente para permitir el uso de Fresco sin ningún código nativo (consulte, por ejemplo, ImagePipelineExperiments # disableNativeCode ). Podría estar listo con la versión v1.11 o v1.12. Felicitaciones a @MikaelMorales

En temas como este, es muy difícil para nosotros avanzar sin una reproducción completa con la que podamos trabajar. Aquí parece que tener fragmentos del archivo build.gradle no es suficiente. Tendría que ser un proyecto mínimo, pero completo.

Si tiene una reproducción local, puede ayudarnos mucho a nosotros y a todos en este hilo:

  • Comprobando si se reproduce con la aplicación de presentación
  • Luego, gradualmente, vaya de la aplicación de presentación a la configuración de su compilación y observe en qué punto se rompe

¡Este es un problema en el que necesitamos mucho su ayuda! He añadido la etiqueta "bug" para que stale-bot se mantenga en silencio.

@ ch4ndu , ha observado correctamente que a armeabi le faltan las últimas versiones de Fresco. Se eliminó en NDK r17 (https://developer.android.com/ndk/guides/abis)

Simplemente puede comprar un OPPO r7 con Android 5.1.1 para reproducir este problema por su cuenta.
Tenga en cuenta que debe integrarse con okhttp para que arroje excepciones.

Entonces, ¿hay alguna corrección de errores o solución? De lo contrario, usaré otra biblioteca, porque tal error durante tanto tiempo es un gran NO.

Encontré una solución alternativa ... Solo agregue esto a la etiqueta de Android en build.gradle

packagingOptions { exclude "lib/arm64-v8a/libimagepipeline.so" exclude "lib/arm64-v8a/libnative-imagetranscoder.so" }

No es gran cosa. Hay un montón de errores que aún no se han resuelto en la API de Google desde 2017. Lo que causó 2000 bloqueos al día en mi aplicación. Simplemente no toman los errores tan importantes como las nuevas funciones. El único que lo soluciona en una semana es Twitter.

Por lo tanto, la opción de exclusión tampoco funciona completamente. Se bloquearon algunos dispositivos Samsung (S8 y Xcover4).

Mejor solución alternativa: use fresco 1.7.1 para mostrar imágenes de forma rápida y fluida en simpledrawview
y usar deslizamiento para cambiar el tamaño (porque 1.7.1 a veces no redimensionaba las imágenes grandes correctamente, lo que sí hizo la 1.12.1. Pero la 1.12.1 tiene este error.

PS .: También probé Picasso, pero necesita mucha memoria .. (incluso con la versión 2.7).

(tenga en cuenta que ya no trabajo en Fresco y estoy hablando como usuario)

Intentaremos la siguiente solución para este problema, que requiere Fresco 1.11 o posterior.

Configure la canalización de imágenes para usar la memoria intermedia en lugar de la memoria nativa (ejemplo de okhttp):

ImagePipelineConfig config = 
    OkHttpImagePipelineConfigFactory.newBuilder(context, okHttpClient)
        .setMemoryChunkType(MemoryChunkType.BUFFER_MEMORY)
        .build()
Fresco.initialize(context, config);

No recomiendo esta solución para dispositivos con Android 4.xo inferior Y con menos de 1 GB de RAM.

Además, si no está utilizando filtros nativos o transcodificador, debe excluirlos en su archivo gradle:

implementation('com.facebook.fresco:fresco:1.12.1') {
  exclude module: 'nativeimagefilters'
  exclude module: 'nativeimagetranscoder'
}

Nos llevará una semana o dos confirmar que esto elimina el error en nuestra aplicación. @oprisnik , ¿se puede agregar esto a los documentos? Además, con este cambio debería ser posible excluir libimagepipeline.so de las aplicaciones que no lo usan, pero ese no parece ser el caso.

He utilizado su solución en producción:

implementación ('com.facebook.fresco: fresco: 1.12.1') ​​{
módulo de exclusión: 'nativeimagefilters'
módulo de exclusión: 'nativeimagetranscoder'
}

Todavía chocando:
Causado por java.lang.UnsatisfiedLinkError
no se pudo encontrar DSO para cargar: libstatic-webp.so
com.facebook.soloader.SoLoader.initSoSources (Fuente desconocida)
com.facebook.soloader.SoLoader.init (Fuente desconocida)
com.facebook.soloader.SoLoader.init (Fuente desconocida)
com.facebook.soloader.SoLoader.init (Fuente desconocida)
com.facebook.imagepipeline.nativecode.StaticWebpNativeLoader.ensure (fuente desconocida)
com.facebook.animated.webp.WebPImage.create (Fuente desconocida)

@galrom, esto solo sucedería si incluye el módulo static-webp (anteriormente conocido como webpsupport). Solo debe hacer esto si su aplicación es compatible con Android 4.2.0 o versiones anteriores. Incluso entonces, solo lo necesita para webp transparente o sin pérdidas; para webp básico, puede bajar a Android 4.0 sin static-webp.

Nuestros dependency graph no muestran rastro de static-webp module y experimentamos este bloqueo

Tengo el mismo problema con Oppo os v5.

// Fresco
    api 'com.facebook.fresco:fresco:1.13.0'
    api 'com.facebook.fresco:animated-webp:1.13.0'
    api 'com.facebook.fresco:imagepipeline-okhttp3:1.13.0'

image

Confirmé que nuestra aplicación (Memrise) ha eliminado este bloqueo por completo utilizando el código que publiqué anteriormente. No estamos usando static-webp, por lo que no es un problema para nosotros.

Genial, gracias por confirmar @tyronen. Actualizaremos los documentos. Quizás también deberíamos hacer que este sea el comportamiento predeterminado para> 4x.

Tengo el mismo problema con Oppo os v5.

// Fresco
    api 'com.facebook.fresco:fresco:1.13.0'
    api 'com.facebook.fresco:animated-webp:1.13.0'
    api 'com.facebook.fresco:imagepipeline-okhttp3:1.13.0'

image

También encontré esto en la misma versión, 1.13.0 Entonces, me gustaría saber cómo resolver esto sin quitar el soporte arm64. @oprisnik
image

¿Por qué Facebook no resuelve este problema? Hemos publicado muchas consultas y todavía están solicitando el informe. Qué mal apoyo por parte del equipo de Facebook.

Tengo el mismo problema con Oppo os v5.

// Fresco
    api 'com.facebook.fresco:fresco:1.13.0'
    api 'com.facebook.fresco:animated-webp:1.13.0'
    api 'com.facebook.fresco:imagepipeline-okhttp3:1.13.0'

image

También encontré esto en la misma versión, 1.13.0 Entonces, me gustaría saber cómo resolver esto sin quitar el soporte arm64. @oprisnik
image

¿Encuentra alguna solución?

¿Puedes probar con la solución descrita anteriormente? https://github.com/facebook/fresco/issues/2049#issuecomment -462880309

¿Puedes probar con la solución descrita anteriormente? # 2049 (comentario)

Probé esta solución, pero bloquea la aplicación.

mismo problema, utilizo la implementación 'com.facebook. fresco: fresco : 2.0.0 '

estoy usando 'com.facebook. fresco: fresco : 2.0.0 '.
Tengo el mismo problema en mi dispositivo HUAWEI HORNOR 8.
Recien agregado
ndk {abiFilters "armeabi", "armeabi-v7a", "x86"}
en defaultConfig resolvió mi problema.

lo mismo aquí, ocurre básicamente en todas las versiones del sistema 6 y superiores y la mayoría de las marcas de dispositivos

estoy usando 'com.facebook. fresco: fresco : 2.0.0 '.
Tengo el mismo problema en mi dispositivo HUAWEI HORNOR 8.
Recien agregado
ndk {abiFilters "armeabi", "armeabi-v7a", "x86"}
en defaultConfig resolvió mi problema.

@glovebx Es posible que desee comprobar si limitar a 32 bits no le causará problemas con los requisitos de Google para 64 bits: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for- 64 bits.html

Por lo que entendí, se requerirán nuevas aplicaciones o actualizaciones de aplicaciones existentes para admitir 64Bit a partir del 1.08.2019

Tengo una solución de compromiso antes de que se solucione este problema.
https://github.com/facebook/fresco/issues/2381#issuecomment -516825599
Espero que te ayude

@ShawnDongAi ¡ gracias por compartir esto 👍! Para nosotros es un poco tarde :) nos mudamos a otra biblioteca de imágenes debido a este problema de frescos aquí.

https://github.com/facebook/SoLoader/pull/45 debería solucionar algunos de los problemas aquí. También estamos trabajando para hacer que SoLoader sea opcional, de modo que pueda usar otros mecanismos para cargar código nativo en su lugar.

Utilizando la versión RN 0.60.5.
Si se preguntan por qué su aplicación se bloquea si la descarga de la tienda de juegos, realice los cambios a continuación

packagingOptions {
excluir '/lib/arm64-v8a/libc++_shared.so' (excluir '/lib/arm64-v8a/error_causing_library.so')
excluir '/lib/x86_64/libc++_shared.so' (excluir '/lib/arm64-v8a/error_causing_library.so')

//In pickFirst, replace the library name with the library that is causing error.
pickFirst '/lib/x86/libc++_shared.so' (pickFirst '/lib/x86/error_causing_library.so')
pickFirst '/lib/armeabi-v7a/libc++_shared.so' (pickFirst '/lib/armeabi-v7a/error_causing_library.so')

}

Si no sabe qué biblioteca está causando el bloqueo, cargue su paquete en el laboratorio de pruebas de Firebase y luego verifique. Te dirá qué biblioteca está arrojando el error.

@waseefakhtar Puede realizar los siguientes cambios

packagingOptions {
excluir '/lib/arm64-v8a/libc++_shared.so'
excluir '/lib/x86_64/libc++_shared.so'
pickFirst '/lib/x86/libc++_shared.so'
pickFirst '/lib/armeabi-v7a/libc++_shared.so'
}

¿Alguien tiene una lista paso a paso para reproducir este problema? Lo enfrentamos en producción, pero no podemos reproducirlo localmente, incluso con el mismo teléfono que muestra nuestro notificador de fallas.

@juanimoli no está seguro, pero la mayoría de los dispositivos Oppo que ejecutan OS 5 parecen enfrentar el problema.

@waseefakhtar Pude reproducir el problema compilando la aplicación para "armeabi-v7a" en la opción de archivo json de especificaciones del dispositivo del bundletool (usando AppBundle). Instaló la aplicación en un dispositivo compatible y el bloqueo apareció de inmediato.

Pude solucionarlo aplicando 2381 # issuecomment-516825599 sin abiFilters o excluidos agregados.

Usé fresco 1.13.0 y estuvo bien todo el tiempo. Cuando actualicé a 2.0.0, tuve este problema. Luego verifiqué mi nueva apk, no encontré libimagepipeline.so en mi apk. Luego limpié mi proyecto, construí una nueva APK. Y tengo libimagepipeline.so en mi nueva apk. . y el problema está solucionado, ¡esto puede ser un problema del estudio de Android!

¡He resuelto este problema de esta manera!

defaultConfig {... ndk {abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64"}}

Actualicé a AndroidX y, de repente, tenía couldn't find DSO to load: libimagepipeline.so en el entorno local, logré arreglarlo copiando el proyecto a otra ruta .

No tengo idea, pero supongo que algo salió mal con la caché de Gradle. (aunque se borró la caché de Gradle)

Me gustaría saber la causa raíz si alguien lo sabe.

Sucediendo de nuestro lado después de la actualización a Fresco 2.1.0

Lo arreglé haciendo los siguientes cambios:

implementation('com.facebook.fresco:fresco:2.1.0') {
        exclude group: 'com.facebook.soloader', module: 'soloader'
}
implementation('com.facebook.fresco:imagepipeline-okhttp3:2.1.0') {
        exclude group: 'com.facebook.soloader', module: 'soloader'
}

Después de este cambio, Fresco utilizará el cargador nativo en lugar de soLoader para cargar las bibliotecas nativas.

También debe agregar exclude group: 'com.facebook.fresco', module: 'soloader' , consulte la versión 2.1.0 para obtener más detalles:

https://github.com/facebook/fresco/releases/tag/v2.1.0

Me mudé a Fresco desde Picasso recientemente y acabo de lanzar la aplicación actualizada en Playstore. Ahora, en su primer día, veo este error en mi aplicación. El bloqueo se observó en la versión 7.1.2 de Android en dispositivos Trend

Screenshot (158)

¿Hay alguna solución de trabajo disponible ahora?

Soluciones potenciales:

  • Utilice la última versión de Fresco. SoLoader se actualiza constantemente y se corrigen los problemas con ciertos dispositivos. O ayúdenos a descubrir por qué sucede esto en su conjunto de dispositivos y contribuya a SoLoader.
  • Utilice el cargador de biblioteca nativo del sistema en lugar de SoLoader o su propia implementación https://github.com/facebook/fresco/issues/2049#issuecomment -615255009
  • Use Fresco solo en Java sin código nativo, consulte https://github.com/facebook/fresco/releases/tag/v2.1.0 (probablemente sea más similar a Picasso, ya que tampoco emplea código nativo para mejorar el rendimiento).

@oprisnik Probé las 3 soluciones anteriores actualizadas a 2.2.0 y probé la aplicación en firebase, pero durante la prueba obtuve este error

java.lang.RuntimeException: no se puede crear la aplicación com.example.xyz.MyApplication: java.lang.RuntimeException: configuración incorrecta del código nativo, error de reflexión.

solo en dispositivos que ejecutan API 19.

Yo había usado

` implementation('com.facebook.fresco:fresco:2.2.0') {  
  exclude group: 'com.facebook.soloader', module: 'soloader'
  exclude group: 'com.facebook.fresco', module: 'soloader'
  exclude group: 'com.facebook.fresco', module: 'nativeimagefilters'
  exclude group: 'com.facebook.fresco', module: 'nativeimagetranscoder'
  exclude group: 'com.facebook.fresco', module: 'memory-type-native'
  exclude group: 'com.facebook.fresco', module: 'imagepipeline-native' }`

Fresco inicializado usando

             `Fresco.initialize(
                     getApplicationContext(),
                     ImagePipelineConfig.newBuilder(getApplicationContext())
                    .setMemoryChunkType(MemoryChunkType.BUFFER_MEMORY)
                    .setImageTranscoderType(ImageTranscoderType.JAVA_TRANSCODER)
                    .experiment().setNativeCodeDisabled(true)
                    .build());`

El seguimiento de la pila completa es

java.lang.RuntimeException: no se puede crear la aplicación com.example.xyz.MyApplication: java.lang.RuntimeException: configuración incorrecta del código nativo, error de reflexión.
EXCEPCIÓN FATAL: principal
Proceso: com.example.xyz, PID: 29863
java.lang.RuntimeException: no se puede crear la aplicación com.example.xyz.MyApplication: java.lang.RuntimeException: configuración incorrecta del código nativo, error de reflexión.
en android.app.ActivityThread.handleBindApplication (ActivityThread.java:4423)
en android.app.ActivityThread.access $ 1500 (ActivityThread.java:139)
en android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1270)
en android.os.Handler.dispatchMessage (Handler.java:102)
en android.os.Looper.loop (Looper.java:136)
en android.app.ActivityThread.main (ActivityThread.java:5097)
en java.lang.reflect.Method.invokeNative (método nativo)
en java.lang.reflect.Method.invoke (Method.java:515)
en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785)
en com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601)
en dalvik.system.NativeStart.main (método nativo)
Causado por: java.lang.RuntimeException: configuración incorrecta del código nativo, error de reflexión.
en com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder (PlatformDecoderFactory.java:51)
en com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformDecoder (ImagePipelineFactory.java:312)
en com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformBitmapFactory (ImagePipelineFactory.java:304)
en com.facebook.imagepipeline.core.ImagePipelineFactory.getAnimatedFactory (ImagePipelineFactory.java:164)
en com.facebook.imagepipeline.core.ImagePipelineFactory.getImageDecoder (ImagePipelineFactory.java:227)
en com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerFactory (ImagePipelineFactory.java:327)
en com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerSequenceFactory (ImagePipelineFactory.java:360)
en com.facebook.imagepipeline.core.ImagePipelineFactory.getImagePipeline (ImagePipelineFactory.java:282)
en com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:52)
en com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:43)
en com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:36)
en com.facebook.drawee.backends.pipeline.Fresco.initializeDrawee (Fresco.java:121)
en com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:110)
en com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:54)
en com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:46)
en com.example.xyz.MyApplication.onCreate (MyApplication.java:26)
en android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1030)
en android.app.ActivityThread.handleBindApplication (ActivityThread.java:4420)
... 10 más
Causado por: java.lang.ClassNotFoundException: com.facebook.imagepipeline.platform.KitKatPurgeableDecoder
en java.lang.Class.classForName (método nativo)
en java.lang.Class.forName (Class.java:251)
en java.lang.Class.forName (Class.java:216)
en com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder (PlatformDecoderFactory.java:44)
... 27 más
Causado por: java.lang.NoClassDefFoundError: com / facebook / imagepipeline / platform / KitKatPurgeableDecoder
... 31 más
Causado por: java.lang.ClassNotFoundException: No se encontró la clase "com.facebook.imagepipeline.platform.KitKatPurgeableDecoder" en la ruta: DexPathList [[archivo zip "/data/app/com.example.xyz-1.apk", archivo zip "/data/data/com.example.xyz/code_cache/secondary-dexes/com.example.xyz-1.apk.classes2.zip", archivo zip "/data/data/com.example.xyz/code_cache /secondary-dexes/com.example.xyz-1.apk.classes3.zip"],nativeLibraryDirectories=[/data/app-lib/com.example.xyz-1, / vendor / lib, / system / lib]]
en dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
en java.lang.ClassLoader.loadClass (ClassLoader.java:497)
en java.lang.ClassLoader.loadClass (ClassLoader.java:457)
... 31 más

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