Fresco: Exceção fatal: java.lang.UnsatisfiedLinkError não conseguiu encontrar DSO para carregar: libimagepipeline.so / com.facebook.imagepipeline.memory.NativeMemoryChunk

Criado em 11 fev. 2018  ·  87Comentários  ·  Fonte: facebook/fresco

Descrição

Atualize para a versão 1.8.0 e o Crashlytic relata esses 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)

Reprodução

Solução

Quero saber se a atualização para 1.8.1 pode corrigir esses problemas ou preciso adicionar compile 'com.facebook.soloader:soloader:0.1.0+' ao build.gradle

informação adicional

  • Versão Fresco:
    compile 'com.facebook.fresco:fresco:1.8.0'
    compile 'com.facebook.fresco:animated-gif:1.8.10'
  • Versão da plataforma:
    OPPO - SO: Android 5.1.1
    DISPOSITIVO: R7sfg / R7g / A51fa
bug enhancement

Comentários muito úteis

Eu uso a versão 1.8.1 também tenho o mesmo problema.O dispositivo é 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

não foi possível encontrar DSO para carregar: 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 bolts.Task $ 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 comentários

Como sua construção está configurada? Você está usando divisões ABI? http://frescolib.org/docs/shipping.html

@oprisnik
minha configuração de construção
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 } }

e configuração 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.** { *;}

Não sei por que isso só acontece no OPPO - SO: Android 5.1.1 e antes da atualização para a versão 1.8.0, esses problemas não acontecem com a mesma configuração de compilação

Olá @hsandyque , você não precisa da dependência extra de soloader , pois agora ele vem com o Fresco desde 1.8.0. Eu recomendo atualizar para 1.8.1, pois corrige outros bugs.

Seu arquivo build.gradle deve fazer referência ao arquivo proguard-fresco.pro conforme descrito no link postado por @oprisnik .

Para esclarecimento: esse bug _apenas_ acontece naquele dispositivo específico? Existe alguma saída de adb logcat que você possa compartilhar?

Olá @lambdapioneer ,
Para esclarecimento: esse bug só acontece naquele dispositivo específico? Existe alguma saída adb logcat que você pode compartilhar?
Sim, isso só acontece em dispositivos OPPO Android 5.1.1 (R7sfg / R7g / A51fa)
E os acessórios são logcats
1.txt
2.txt

Olá @hsandyque , dado que isso só acontece com telefones Oppo, sugere que a maneira como as bibliotecas binárias são agrupadas e a maneira como o telefone as carrega não estão funcionando bem.

Não tenho acesso a um telefone OPPO no momento e não consegui encontrar melhores dicas ao pesquisar: /

(a) Isso também acontece durante a instalação do aplicativo de demonstração que temos em nosso repositório? (isso me deixaria mais perto de depurar isso assim que eu conseguir um telefone OPPO)
(b) Você pode fornecer a saída da execução de unzip -l your_release.apk | grep lib/ em seu APK de lançamento? Isso mostrará quais arquivos estão realmente agrupados.

Olá @lambdapioneer ,

Não tenho um telefone OPPO (Android 5.1.1), esses problemas relatam do Crashlytics. Não sei se isso também acontece no app showcase.

E a lista de pacotes a seguir
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

Olá @lambdapioneer ,
mais log
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)

HI @oprisnik
tenho o mesmo problema de como consertar?

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

@hsandyque

Você especifica algum filtro ABI (tipo de CPU) em seus arquivos gradle de aplicativos?

@erikandre
Eu não uso nenhum filtro ABI em meu arquivo gradle e já listo a configuração de detalhes na resposta anterior

Eu uso a versão 1.8.1 também tenho o mesmo problema.O dispositivo é 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

não foi possível encontrar DSO para carregar: 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 bolts.Task $ 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)

Qualquer correção? Este é o meu log
Exceção fatal: java.lang.UnsatisfiedLinkError: não foi possível encontrar DSO para carregar: libimagepipeline.so
em com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:522)
em com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:420)
em com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:370)
em com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:335)
em com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load (ImagePipelineNativeLoader.java:42)
em com.facebook.imagepipeline.memory.NativeMemoryChunk.(NativeMemoryChunk.java:33)
em com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:58)
em com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:20)
em com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
em com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
em com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream (NativePooledByteBufferFactory.java:141)
em com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream (NativePooledByteBufferFactory.java:26)
em com.facebook.imagepipeline.producers.NetworkFetchProducer.onResponse (NetworkFetchProducer.java:90)
em com.facebook.imagepipeline.producers.NetworkFetchProducer $ 1.onResponse (NetworkFetchProducer.java:70)
em com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher $ 2.onResponse (OkHttpNetworkFetcher.java:180)
em okhttp3.RealCall $ AsyncCall.execute (RealCall.java:153)
em okhttp3.internal.NamedRunnable.run (NamedRunnable.java:32)
em java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
em java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
em java.lang.Thread.run (Thread.java:818)

image

@ wangshuwen1107 @ csbz17027 @ignaciogs
Como o Facebook ainda está verificando o problema, encontrei a solução alternativa que pode corrigir temporariamente o 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

O log que descobri é que esses dispositivos específicos rodam app em 32 bits (não sei por que, talvez o bug do framework), mas o libimagepipeline.so é de 64 bits.

Adicione o filtro de api conforme o seguinte ajuste de código, pule o "arm64-v8a"
defaultConfig { ... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64" } }
Não é a solução correta, mas talvez resolva o problema no início e depois aguardamos a atualização

@hsandyque muito obrigado, sua resposta é muito útil, ansioso por sua atualização!

@oprisnik @erikandre @lambdapioneer
Você tem alguma ideia de como consertar esse problema?

@hsandyque você carrega alguma outra dependência de forma que o sistema possa ser confundido com uma mistura de bibliotecas de 32 bits e 64 bits?

Neste caso, sugiro que você vá com a seguinte linha abiFilters :

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

Talvez até mesmo descartar mips uma vez, se você não visar especificamente um dispositivo especial.

Ainda tendo esse problema na v1.9.0.

Adicionando

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

Funcionou para mim. Mas ao ler a conversa acima, parece que não é a solução "correta"?

Minha equipe tem o mesmo problema, não tem recebido tantos relatórios de falhas (OOM do afresco) de uma terceira biblioteca como esta, é hora de dizer tchau!

eu uso
ndk { abiFilters "armeabi,armeabi-v7a" }
e
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'
também tem o mesmo acidente.

Ainda tenho esse problema na v1.9.0.

Ainda enfrentando esse problema no 1.9.0 com abis "armeabi", "armeabi-v7a", "x86" compatível

Ainda tenho esse problema na v1.9.0.

Também estou tendo o mesmo problema. Meu aplicativo está travando ao abrir. Ocorre apenas no HTC One E9PLUS dual sim em execução no Android 5.0.2
Erro: Exceção fatal: java.lang.UnsatisfiedLinkError
não foi possível encontrar DSO para carregar: libimagepipeline.so

ATUALIZAÇÃO: Para quem já teve esse problema, consulte o guia de produção no site da Fresco , que resolve nosso problema.

Também vejo esse problema em uma variedade de dispositivos:
image

Usando o Fresco versão 1.9.0 e filtros ABI para reduzir o tamanho do APK:

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

Esse problema começou a ocorrer para nós quando atualizamos o Fresco de 1.5.0 para 1.9.0. Isso também envolveu a remoção do uso do ReLinker e a remoção do arquivo proguard-fresco.pro incluído explicitamente.

Olá, parece que não houve nenhuma atividade sobre esse problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "bug" ou "aprimoramento" e eu o deixarei aberto. Obrigado por suas contribuições.

Ressalto. Este ainda é um problema contínuo. Este travamento ocorreu após a atualização de 1.5.0 para 1.9.0 e nenhuma solução que funcione para mim foi fornecida.

@jmbusby você está mirando apenas no braço v7a. Alguns dos dispositivos podem ser armv6 ou mesmo armv5? Por exemplo, parece haver alguns dispositivos ZTE com v6 de acordo com https://forum.xda-developers.com/showthread.php?t=1596800

@oprisnik Eu acho improvável, já que o telefone mais comum que está travando é um Asus Zenfone 3 Max que tem um processador ARM v8. O telefone ZTE mais comum é um Blade V7, também com ARM v8.

Estou vendo esse problema ao migrar para 1.10 de 1.8.1

Alguns componentes que usamos em nosso aplicativo nos forçam a usar apenas as divisões 'armeabi' e 'x86' ... e olhando para o arquivo aar do Imagepipeline para v-1.10, a variante 'armeabi' está ausente. Será esse o caso daqui para frente? Você está abandonando o suporte para essa arquitetura?
Os arquivos .so estão presentes no 1.9.

Qualquer pista aqui

Olá, parece que não houve nenhuma atividade sobre esse problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "bug" ou "aprimoramento" e eu o deixarei aberto. Obrigado por suas contribuições.

O problema ainda está lá

Oi pessoal, é bom 'ver' vocês novamente.

@lambdapioneer , @oprisnik este problema foi relatado em várias encarnações desde Fresco 0.1. O problema está na abundância de dispositivos que carregam bibliotecas, alguns deles estão fadados a ter problemas.

A solução recomendada (dividir o APK) causa outros problemas. Entre outras coisas, a divisão do APK requer códigos de versão separados para cada ABI. Quando você já tem vários sabores de produto e tipos de compilação, todos gerenciados por plug-ins externos como o hockeyapp, a divisão faz com que os olhos da equipe se fechem. Neste ponto, seria realmente mais fácil mudar para o Glide do que fazer isso.

NativePooledByteBuffer não é tão importante para API> = 21, que é o objetivo de muitos aplicativos (Dalvik agora está reduzido a 10%). Pode valer a pena torná-lo opcional e usar apenas a memória Java padrão para as plataformas posteriores.

Posso trabalhar nisso mais tarde, mas suspeito que você prefere que alguém ainda no FB faça isso :)

Ei @tyronen! Há quanto tempo' :)

Bom momento, na verdade temos alguém trabalhando nisso agora (uma versão Java de NativePooledByteBuffer e classes semelhantes) - então, isso deve ser corrigido em breve.

No entanto, temos alguns outros problemas em aberto e ideias para melhorias futuras, se você quiser contribuir novamente.
Também temos algumas mudanças maiores em mente para o Drawee e o pipeline, então é provável que as coisas mudem em breve.

Samsung Galaxy S9 Android 8 ainda não funciona.

Eu também encontro esse problema. Isso aconteceu no telefone OPPO A51 , ele apareceu enquanto eu estava usando Fresco v1.8.1 mas não apareceu dentro de v0.12.0

Então eu acho que isso será simplesmente ignorado? Falha na maioria dos dispositivos populares a partir da versão 1.8 ...

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

Qualquer atualização?

Mesmo problema aqui
Problema de quase 8 meses.
Alguma solução alternativa? O downgrade do fresco e o uso do soloader funcionam?

Olá a todos, compreendo a frustração com este problema.

Quero que você saiba que estamos bem cientes dos (vários) problemas com o código nativo e os problemas que ele causa. Estamos trabalhando ativamente para permitir o uso do Fresco sem nenhum código nativo (veja, por exemplo, ImagePipelineExperiments # disableNativeCode ). Pode estar pronto com a versão v1.11 ou v1.12. Parabéns a @MikaelMorales

Em questões como essa, é muito difícil para nós progredir sem qualquer reprodução completa com a qual possamos trabalhar. Aqui parece que ter trechos do arquivo build.gradle não é suficiente. Precisaria ser um projeto mínimo, mas completo.

Se você tem um representante local, pode ajudar muito a nós e a todos neste tópico:

  • Verificar se reproduz com o app showcase
  • Em seguida, ir gradualmente do aplicativo de demonstração para sua configuração de compilação e observar em que ponto ele quebra

Este é um problema em que precisamos muito da sua ajuda! Eu adicionei a tag "bug" para que o bot obsoleto fique quieto.

@ ch4ndu , você observou corretamente que armeabi contém as versões mais recentes do Fresco. Ele foi removido no NDK r17 (https://developer.android.com/ndk/guides/abis)

W / System.err: java.lang.UnsatisfiedLinkError: não foi possível encontrar DSO para carregar: libimagepipeline.so
Como corrigi-lo

ndk {abiFilters "armeabi"}
implementação 'com.facebook. fresco: fresco : 1.11.0 '
implementação 'com.facebook. afresco: gif animado : 1.11.0 '
implementação 'com.facebook. fresco: animated-webp : 1.11.0 '
implementação 'com.facebook. fresco: webpsupport : 1.11.0 '

Olá, posso ter encontrado outra forma de reproduzir este problema.

Usamos Fresco 1.11 para carregar algumas imagens estáticas e GIFs animados em nosso aplicativo. Ambos funcionam bem quando criamos e instalamos APKs, mas não quando criamos pacotes de aplicativos a partir do Android Studio e usamos bundletool para construir ( build-apks ) e instalar ( install-apks ) os APKs. Nesse caso, os GIFs não são carregados, mas o aplicativo não trava quando tentamos carregá-los e tentar carregar uma imagem estática trava o aplicativo ( couldn't find DSO to load: libimagepipeline.so ).

Tentamos definir .experiment().setNativeCodeDisabled(true) no ImagePipelineConfig do Fresco e com isso as imagens estáticas funcionam, mas os GIFs travam com um erro diferente ( couldn't find DSO to load: libgifimage.so ). Mesmo se isso funcionasse, não nos sentiríamos confortáveis ​​usando algo chamado ".experiment ()" na produção.

Estou usando o Android Gradle Plugin 3.2.1, Android Studio 3.3 beta 4 e bundletool 0.7.1. Estou testando em um telefone Android 8.1.0.

Existe uma maneira de usar o Fresco com pacotes de aplicativos de maneira confiável? Isso está nos impedindo de mudar para o novo formato no momento. Obrigado!

Esta é a falha ao tentar carregar GIFs após ativar o 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)

A falha ao tentar carregar imagens estáticas antes de ativar o experimento está abaixo. Os rastreamentos são semelhantes ( couldn't find DSO to load: libimagepipeline.so ) ao tentar carregar GIFs, mas sem chegar à exceção 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)

Oi de novo,

Tentei reproduzir o problema com o aplicativo de demonstração, verificando o rótulo v1.11.0, mas ele não compila. Tentei seguir https://frescolib.org/docs/building-from-source.html mas acho que está obsoleto (por exemplo, fala sobre a pasta android-ndk / r10e mas que não existe na minha instalação e a versão mais recente é r18b).

Se eu tentar executar o aplicativo de demonstração no Android Studio, obtenho Process 'command '<mySdkPath>/ndk-bundle/ndk-build'' finished with non-zero exit value 2 .

Executando ./gradlew build na linha de comando, obtenho:

> 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.

Tentei definir APP_PLATFORM com valores diferentes e a linha sobre isso desaparece, mas o erro é o mesmo.

Esse problema ainda ocorre com o Android Studio 3.3 RC 1.

Ajude-me!

java.lang.UnsatisfiedLinkError: não foi possível encontrar DSO para carregar: libimagepipeline.so causado por: dlopen falhou: "/data/data/com.vipabc.vipmobilejr.phone/lib-main/libimagepipeline.so" é de 64 bits de 32 bits

Esse problema só apareceu quando eu uso a integração okhttp.
Mas sem ele meu aplicativo não começa a baixar imagens.

Olá a todos, compreendo a frustração com este problema.

Quero que você saiba que estamos bem cientes dos (vários) problemas com o código nativo e os problemas que ele causa. Estamos trabalhando ativamente para permitir o uso do Fresco sem nenhum código nativo (veja, por exemplo, ImagePipelineExperiments # disableNativeCode ). Pode estar pronto com a versão v1.11 ou v1.12. Parabéns a @MikaelMorales

Em questões como essa, é muito difícil para nós progredir sem qualquer reprodução completa com a qual possamos trabalhar. Aqui parece que ter trechos do arquivo build.gradle não é suficiente. Precisaria ser um projeto mínimo, mas completo.

Se você tem um representante local, pode ajudar muito a nós e a todos neste tópico:

  • Verificar se reproduz com o app showcase
  • Em seguida, ir gradualmente do aplicativo de demonstração para sua configuração de compilação e observar em que ponto ele quebra

Este é um problema em que precisamos muito da sua ajuda! Eu adicionei a tag "bug" para que o bot obsoleto fique quieto.

@ ch4ndu , você observou corretamente que armeabi contém as versões mais recentes do Fresco. Ele foi removido no NDK r17 (https://developer.android.com/ndk/guides/abis)

Você pode simplesmente comprar um OPPO r7 com Android 5.1.1 para reproduzir esse problema por conta própria.
Observe que você deve integrar com okhttp para que ele lance exceções.

Então, há alguma correção de bug ou solução alternativa? Caso contrário, usarei outra biblioteca, porque esse bug por tanto tempo é um grande NÃO.

Eu encontrei uma espécie de solução alternativa. Basta adicionar isso à tag android em build.gradle

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

Não é grande coisa. Há um monte de bugs não resolvidos ainda na API do Google desde 2017. O que causou 2.000 travamentos por dia em meu aplicativo. Eles simplesmente não consideram os bugs tão importantes quanto os novos recursos. O único que corrige isso em uma semana é o Twitter.

Portanto, também a opção de exclusão não funciona totalmente. Houve falhas em alguns dispositivos Samsung (S8 e Xcover4).

Melhor solução alternativa: use o fresco 1.7.1 para exibir imagens de forma rápida e suave no simpledrawview
e use glide para redimensionar (porque 1.7.1 às vezes não redimensionava imagens grandes corretamente - o que 1.12.1 fez. Mas 1.12.1 tem esse .so bug / crashes).

PS .: Também experimentei o Picasso, mas precisa de muita memória .. (mesmo com a versão 2.7).

(observe que não trabalho mais no Fresco e estou falando como um usuário)

Vamos tentar a seguinte solução alternativa para esse problema, que requer Fresco 1.11 ou posterior.

Configure o pipeline de imagem para usar memória buffer em vez de memória nativa (exemplo okhttp):

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

Não recomendo esta solução para dispositivos com Android 4.x ou inferior E menos de 1 GB de RAM.

Além disso, se você não estiver usando filtros ou transcodificadores nativos, deve excluí-los do arquivo Gradle:

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

Levaremos uma ou duas semanas para confirmar que isso elimina o bug em nosso aplicativo. @oprisnik , isso pode ser adicionado aos documentos? Além disso, com essa alteração, deve ser possível excluir libimagepipeline.so de aplicativos que não o utilizam, mas não parece ser o caso.

Usei sua solução na produção:

implementação ('com.facebook.fresco: fresco: 1.12.1') ​​{
excluir módulo: 'nativeimagefilters'
excluir módulo: 'nativeimagetranscoder'
}

Ainda travando:
Causado por java.lang.UnsatisfiedLinkError
não foi possível encontrar DSO para carregar: libstatic-webp.so
com.facebook.soloader.SoLoader.initSoSources (fonte desconhecida)
com.facebook.soloader.SoLoader.init (fonte desconhecida)
com.facebook.soloader.SoLoader.init (fonte desconhecida)
com.facebook.soloader.SoLoader.init (fonte desconhecida)
com.facebook.imagepipeline.nativecode.StaticWebpNativeLoader.ensure (fonte desconhecida)
com.facebook.animated.webp.WebPImage.create (fonte desconhecida)

@galrom isso só aconteceria se você incluir o módulo static-webp (anteriormente conhecido como webpsupport). Você só deve fazer isso se o seu aplicativo suportar Android 4.2.0 ou inferior. Mesmo assim, você só precisa dele para webp sem perdas ou transparente - para webp básico, você pode ir para o Android 4.0 sem webp estático.

Nosso dependency graph não mostra nenhum vestígio de static-webp module e experimentamos esta falha

Eu tenho o mesmo problema com o 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

Confirmei que nosso aplicativo (Memrise) eliminou totalmente esta falha usando o código que postei acima. Não estamos usando static-webp, então isso não é um problema para nós.

Incrível, obrigado por confirmar @tyronen. Vamos atualizar os documentos. Talvez também devêssemos tornar este o comportamento padrão para> 4x.

Eu tenho o mesmo problema com o 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

Eu encontrei isso também na mesma versão, 1.13.0 Então, gostaria de saber como resolver isso sem remover o suporte arm64. @oprisnik
image

Por que o Facebook não está resolvendo esse problema? Colocamos muitas dúvidas, mas eles estão pedindo o relatório. Tão ruim suporte da equipe do Facebook.

Eu tenho o mesmo problema com o 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

Eu encontrei isso também na mesma versão, 1.13.0 Então, gostaria de saber como resolver isso sem remover o suporte arm64. @oprisnik
image

Você encontrou alguma solução?

Você pode tentar com a solução descrita acima? https://github.com/facebook/fresco/issues/2049#issuecomment -462880309

Você pode tentar com a solução descrita acima? # 2049 (comentário)

Eu tentei essa solução, mas ainda assim ele travou o aplicativo

mesmo problema, eu uso a implementação 'com.facebook. fresco: fresco : 2.0.0 '

estou usando 'com.facebook. fresco: fresco : 2.0.0 '.
tenho o mesmo problema no meu dispositivo HUAWEI HORNOR 8.
acabei de adicionar
ndk {abiFilters "armeabi", "armeabi-v7a", "x86"}
em defaultConfig resolveu meu problema.

o mesmo aqui, isso acontece basicamente em todos os sistemas da versão 6 e superior e na maioria das marcas de dispositivos

estou usando 'com.facebook. fresco: fresco : 2.0.0 '.
tenho o mesmo problema no meu dispositivo HUAWEI HORNOR 8.
acabei de adicionar
ndk {abiFilters "armeabi", "armeabi-v7a", "x86"}
em defaultConfig resolveu meu problema.

@glovebx Você pode verificar se limitar a 32 bits não causará problemas com os requisitos do Google para 64 bits: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for- 64-bit.html

Pelo que entendi, novos aplicativos ou atualizações de aplicativos existentes serão necessários para suportar 64Bit a partir de 1.08.2019

Eu tenho uma solução de compromisso antes que esse problema seja corrigido.
https://github.com/facebook/fresco/issues/2381#issuecomment -516825599
Espero que isso possa ajudar-lhe

@ShawnDongAi obrigado por compartilhar isso 👍! Para nós, é um pouco tarde:) mudamos para outra biblioteca de imagens devido a este problema de afresco aqui.

https://github.com/facebook/SoLoader/pull/45 deve corrigir alguns dos problemas aqui. Também estamos trabalhando para tornar o SoLoader opcional, para que você possa usar outros mecanismos para carregar o código nativo.

Usando a versão RN 0.60.5.
Se vocês estão se perguntando por que seu aplicativo trava se você baixá-lo da playstore, faça as alterações abaixo

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')

}

Se você não sabe qual biblioteca está causando a falha, faça upload do seu pacote no laboratório de teste do Firebase e verifique. Ele dirá qual biblioteca está apresentando o erro

@Balajipss não exclui todas as bibliotecas de 64 bits, causando problemas com o requisito de 64 bits do Google: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit .html ?

@waseefakhtar Você pode fazer as seguintes alterações

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'
}

Alguém tem uma lista passo a passo para reproduzir esse problema? Estamos enfrentando isso na produção, mas não podemos reproduzi-lo localmente, mesmo com o mesmo telefone que nosso notificador de falha mostra.

@juanimoli não tenho certeza, mas a maioria dos dispositivos Oppo executando o OS 5 parece enfrentar o problema.

@waseefakhtar Consegui reproduzir o problema compilando o aplicativo para "armeabi-v7a" na opção de arquivo json de especificações do dispositivo do bundletool (usando AppBundle). Instalei o aplicativo em um dispositivo compatível e a falha apareceu imediatamente.

Consegui corrigi-lo aplicando 2381 # issuecomment-516825599 sem abiFilters ou exclusões adicionadas.

Usei o fresco 1.13.0 e estava tudo bem o tempo todo. Quando atualizei para 2.0.0, tive este problema. Depois de verificar meu novo apk, não encontrei libimagepipeline.so em meu apk. Depois, limpo meu projeto, construo um novo APK.e tenho libimagepipeline.so em meu novo apk. . e o problema foi corrigido, talvez seja um problema do android studio!

Resolvi este problema desta forma!

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

Eu atualizo para o AndroidX e de repente eu tinha couldn't find DSO to load: libimagepipeline.so no ambiente local, consegui consertar copiando o projeto para outro caminho .

Não tenho ideia, mas acho que algo deu errado com o cache do Gradle. (embora o cache do Gradle tenha sido limpo)

Gostaria de saber a causa raiz, se alguém souber.

Acontecendo do nosso lado após a atualização para o Fresco 2.1.0

Eu corrigi fazendo as seguintes alterações:

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'
}

Após essa mudança, o Fresco usará o carregador nativo em vez do soLoader para carregar qualquer biblioteca nativa.

Você também deve adicionar exclude group: 'com.facebook.fresco', module: 'soloader' , consulte a versão 2.1.0 para obter mais detalhes:

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

Mudei do Picasso para o Fresco recentemente e acabei de lançar o aplicativo atualizado na Playstore. Agora, no primeiro dia, estou vendo esse erro em meu aplicativo. A falha foi observada no Android versão 7.1.2 em dispositivos Trend

Screenshot (158)

Existe alguma solução de trabalho disponível agora

Soluções potenciais:

  • Use a versão mais recente do Fresco. SoLoader é constantemente atualizado e problemas com determinados dispositivos corrigidos. Ou ajude-nos a descobrir por que isso está acontecendo com o seu conjunto de dispositivos e contribua com o SoLoader.
  • Use o carregador de biblioteca nativa do sistema em vez de SoLoader ou sua própria implementação https://github.com/facebook/fresco/issues/2049#issuecomment -615255009
  • Use o Fresco somente para Java sem código nativo, consulte https://github.com/facebook/fresco/releases/tag/v2.1.0 (provavelmente é mais semelhante ao Picasso, pois também não emprega código nativo para melhorias de desempenho).

@oprisnik Eu tentei a solução 3 acima atualizada para 2.2.0 e testei o aplicativo no firebase, mas durante o teste recebi este erro

java.lang.RuntimeException: Incapaz de criar o aplicativo com.example.xyz.MyApplication: java.lang.RuntimeException: Configuração errada do código nativo, reflexão falhou.

apenas em dispositivos que executam API 19.

Eu tinha 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());`

O rastreamento de pilha completo é

java.lang.RuntimeException: Incapaz de criar o aplicativo com.example.xyz.MyApplication: java.lang.RuntimeException: Configuração errada do código nativo, reflexão falhou.
EXCEÇÃO FATAL: principal
Processo: com.example.xyz, PID: 29863
java.lang.RuntimeException: Incapaz de criar o aplicativo com.example.xyz.MyApplication: java.lang.RuntimeException: Configuração errada do código nativo, reflexão falhou.
em android.app.ActivityThread.handleBindApplication (ActivityThread.java:4423)
em android.app.ActivityThread.access $ 1500 (ActivityThread.java:139)
em android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1270)
em android.os.Handler.dispatchMessage (Handler.java:102)
em android.os.Looper.loop (Looper.java:136)
em android.app.ActivityThread.main (ActivityThread.java:5097)
em java.lang.reflect.Method.invokeNative (Método nativo)
em java.lang.reflect.Method.invoke (Method.java:515)
em com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785)
em com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601)
em dalvik.system.NativeStart.main (Método nativo)
Causado por: java.lang.RuntimeException: Configuração de código nativo errada, reflexão falhou.
em com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder (PlatformDecoderFactory.java:51)
em com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformDecoder (ImagePipelineFactory.java:312)
em com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformBitmapFactory (ImagePipelineFactory.java:304)
em com.facebook.imagepipeline.core.ImagePipelineFactory.getAnimatedFactory (ImagePipelineFactory.java:164)
em com.facebook.imagepipeline.core.ImagePipelineFactory.getImageDecoder (ImagePipelineFactory.java:227)
em com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerFactory (ImagePipelineFactory.java:327)
em com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerSequenceFactory (ImagePipelineFactory.java:360)
em com.facebook.imagepipeline.core.ImagePipelineFactory.getImagePipeline (ImagePipelineFactory.java:282)
em com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:52)
em com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:43)
em com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:36)
em com.facebook.drawee.backends.pipeline.Fresco.initializeDrawee (Fresco.java:121)
em com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:110)
em com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:54)
em com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:46)
em com.example.xyz.MyApplication.onCreate (MyApplication.java:26)
em android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1030)
em android.app.ActivityThread.handleBindApplication (ActivityThread.java:4420)
... mais 10
Causado por: java.lang.ClassNotFoundException: com.facebook.imagepipeline.platform.KitKatPurgeableDecoder
em java.lang.Class.classForName (método nativo)
em java.lang.Class.forName (Class.java:251)
em java.lang.Class.forName (Class.java:216)
em com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder (PlatformDecoderFactory.java:44)
... mais 27
Causado por: java.lang.NoClassDefFoundError: com / facebook / imagepipeline / platform / KitKatPurgeableDecoder
... 31 mais
Causado por: java.lang.ClassNotFoundException: não encontrou a classe "com.facebook.imagepipeline.platform.KitKatPurgeableDecoder" no caminho: DexPathList [[arquivo zip "/data/app/com.example.xyz-1.apk", arquivo zip "/data/data/com.example.xyz/code_cache/secondary-dexes/com.example.xyz-1.apk.classes2.zip", arquivo 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]]
em dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
em java.lang.ClassLoader.loadClass (ClassLoader.java:497)
em java.lang.ClassLoader.loadClass (ClassLoader.java:457)
... mais 31

Esta página foi útil?
0 / 5 - 0 avaliações