Fresco: Schwerwiegende Ausnahme: java.lang.UnsatisfiedLinkError konnte DSO zum Laden nicht finden: libimagepipeline.so / com.facebook.imagepipeline.memory.NativeMemoryChunk

Erstellt am 11. Feb. 2018  Â·  87Kommentare  Â·  Quelle: facebook/fresco

Beschreibung

Update auf Version 1.8.0, Crashlytic meldet diese Probleme.
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)

Reproduktion

Lösung

Ich möchte wissen, ob ein Update auf 1.8.1 diese Probleme beheben kann, oder ich muss compile 'com.facebook.soloader:soloader:0.1.0+' zu build.gradle hinzufĂŒgen

zusÀtzliche Information

  • Fresko-Version:
    compile 'com.facebook.fresco:fresco:1.8.0'
    compile 'com.facebook.fresco:animated-gif:1.8.10'
  • Plattformversion:
    OPPO - Betriebssystem: Android 5.1.1
    GERÄT: R7sfg / R7g / A51fa
bug enhancement

Hilfreichster Kommentar

Ich benutze Version 1.8.1 auch habe das gleiche Problem. Das GerÀt ist 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

DSO konnte nicht geladen werden: 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 Schrauben.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)

Alle 87 Kommentare

Wie ist Ihr Aufbau aufgebaut? Verwenden Sie ABI-Splits? http://frescolib.org/docs/shipping.html

@oprisnik
mein Build-Setup
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 } }

und Multidex-Konfiguration
-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.** { *;}

Ich weiß nicht, warum es nur auf OPPO passiert - OS: Android 5.1.1 und vor dem Update auf Version 1.8.0 treten diese Probleme nicht mit derselben Build-Konfiguration auf

Hallo @hsandyque , du brauchst die zusĂ€tzliche AbhĂ€ngigkeit von soloader da es jetzt seit 1.8.0 mit Fresco ausgeliefert wird. Ich wĂŒrde empfehlen, auf 1.8.1 zu aktualisieren, da es andere Fehler behebt.

Ihre Datei build.gradle sollte auf die Datei proguard-fresco.pro verweisen, wie in dem von beschrieben .

Zur Klarstellung: Tritt dieser Fehler _nur_ auf diesem bestimmten GerÀt auf? Gibt es eine Ausgabe von adb logcat , die Sie teilen können?

Hallo @lambdapioneer ,
Zur Klarstellung: Tritt dieser Fehler nur auf diesem bestimmten GerÀt auf? Gibt es eine Ausgabe von adb logcat, die Sie freigeben können?
Ja, es passiert nur auf OPPO Android 5.1.1-GerÀten (R7sfg / R7g / A51fa)
Und die AnhÀnge sind Logcats
1.txt
2.txt

Hallo @hsandyque , da dies nur bei Oppo-Telefonen vorkommt, deutet dies darauf hin, dass die Art und Weise, wie die

Ich habe im Moment keinen Zugriff auf ein OPPO-Telefon und konnte bei der Suche keine besseren Hinweise finden :/

(a) Geschieht dies auch bei der Installation der Showcase-App, die wir in unserem Repository haben? (Das wĂŒrde mich dem Debuggen nĂ€her bringen, sobald ich ein OPPO-Telefon erhalte)
(b) Können Sie die Ausgabe von unzip -l your_release.apk | grep lib/ auf Ihrem Release-APK bereitstellen? Dadurch wird angezeigt, welche Dateien tatsĂ€chlich gebĂŒndelt sind.

Hallo @lambdapioneer ,

Ich habe kein OPPO-Telefon (Android 5.1.1), diese Probleme werden von Crashlytics gemeldet. Ich weiß nicht, ob diese auch in der Showcase-App passieren.

Und die Bundle-Liste wie folgt
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

Hallo @lambdapioneer ,
mehr 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)

Hallo @oprisnik
ich habe das gleiche problem wie kann ich es beheben?

java.lang.UnsatisfiedLinkError: DSO zum Laden nicht gefunden: libimagepipeline.so
unter com.facebook.soloader.jb(SourceFile:522)
unter com.facebook.soloader.ja(SourceFile:420)
unter com.facebook.soloader.ja(SourceFile:370)
unter com.facebook.soloader.ja(SourceFile:335)
unter com.facebook.imagepipeline.nativecode.aa(SourceFile:42)
unter com.facebook.imagepipeline.memory.NativeMemoryChunk.(Quelldatei:33)
unter com.facebook.imagepipeline.memory.li(SourceFile:58)
unter com.facebook.imagepipeline.memory.lb(SourceFile:20)
unter com.facebook.imagepipeline.memory.aa(SourceFile:257)
unter com.facebook.imagepipeline.memory.o.(Quelldatei:51)
unter com.facebook.imagepipeline.memory.nb(SourceFile:98)
unter com.facebook.imagepipeline.memory.na(SourceFile:26)
unter com.facebook.imagepipeline.producers.za(SourceFile:89)
unter com.facebook.imagepipeline.producers.zb(SourceFile:101)
unter com.facebook.imagepipeline.producers.aa.a(SourceFile:34)
unter com.facebook.imagepipeline.producers.z$1.d(SourceFile:54)
unter com.facebook.imagepipeline.producers.z$1.c(SourceFile:50)
unter com.facebook.common.berun(SourceFile:45)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at com.facebook.imagepipeline.dk$1.run(SourceFile:53)
bei java.lang.Thread.run(Thread.java:818)

@hsandyque

Geben Sie in Ihren Apps-Gradle-Dateien ABI-Filter (CPU-Typ) an?

@erikandre
Ich verwende keine ABI-Filter in meiner Gradle-Datei und liste die Detaileinstellung bereits in der vorherigen Antwort auf

Ich benutze Version 1.8.1 auch habe das gleiche Problem. Das GerÀt ist 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

DSO konnte nicht geladen werden: 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 Schrauben.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)

Irgendeine Lösung? Das ist mein Log
Schwerwiegende Ausnahme: java.lang.UnsatisfiedLinkError: DSO zum Laden nicht gefunden: libimagepipeline.so
unter com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:522)
unter com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:420)
unter com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:370)
unter com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:335)
unter com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:42)
unter com.facebook.imagepipeline.memory.NativeMemoryChunk.(NativeMemoryChunk.java:33)
unter com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:58)
unter com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:20)
unter com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:257)
unter com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
unter com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream(NativePooledByteBufferFactory.java:141)
unter com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream(NativePooledByteBufferFactory.java:26)
unter com.facebook.imagepipeline.producers.NetworkFetchProducer.onResponse(NetworkFetchProducer.java:90)
unter com.facebook.imagepipeline.producers.NetworkFetchProducer$1.onResponse(NetworkFetchProducer.java:70)
unter com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher$2.onResponse(OkHttpNetworkFetcher.java:180)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
bei java.lang.Thread.run(Thread.java:818)

image

@wangshuwen1107 @csbz17027 @ignaciogs
Da Facebook das Problem immer noch ĂŒberprĂŒft, habe ich die Problemumgehungslösung gefunden, die dieses Problem vorĂŒbergehend beheben kann.

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

Das Protokoll, das ich gefunden habe, ist, dass diese spezifischen GerĂ€te eine 32-Bit-App ausfĂŒhren (ich weiß nicht warum, vielleicht der Framework-Fehler), aber die libimagepipeline.so ist 64-Bit.

FĂŒgen Sie den API-Filter als folgenden Code-Snap hinzu, ĂŒberspringen Sie den "arm64-v8a"
defaultConfig { ... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64" } }
Es ist nicht die richtige Lösung, aber vielleicht behebt es das Problem zuerst und dann warten wir auf das Update

@hsandyque vielen Dank, deine Antwort ist sehr hilfreich, freue mich auf dein Update

@oprisnik @erikandre @lambdapioneer
Haben Sie eine Idee, wie Sie dieses Problem beheben können?

@hsandyque laden Sie andere AbhÀngigkeiten, so dass das System mit einer Mischung aus 32-Bit- und 64-Bit-Bibliotheken verwechselt werden könnte?

In diesem Fall wĂŒrde ich vorschlagen, dass Sie die folgende abiFilters Zeile verwenden:

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

Vielleicht lassen Sie mips ganz fallen, wenn Sie nicht speziell auf ein spezielles GerÀt abzielen.

Dieses Problem tritt immer noch auf v1.9.0 auf.

HinzufĂŒgen

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

Hat bei mir funktioniert. Aber wenn Sie das obige GesprÀch lesen, scheint es nicht die "richtige" Lösung zu sein?

Mein Team hat das gleiche Problem, hat nicht so viele Absturzberichte (natĂŒrlich Frescos OOM) von einer dritten Bibliothek wie dieser erhalten, es ist Zeit, TschĂŒss zu sagen!

ich benutze
ndk { abiFilters "armeabi,armeabi-v7a" }
und
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'
habe auch den gleichen absturz.

Habe dieses Problem immer noch auf v1.9.0.

Dieses Problem steht immer noch auf 1.9.0 mit unterstĂŒtzten abis "armeabi", "armeabi-v7a", "x86"

Habe dieses Problem immer noch auf v1.9.0.

Ich habe auch das gleiche Problem. Meine App stĂŒrzt beim Öffnen ab. Es tritt nur auf dem HTC One E9PLUS Dual Sim auf, das auf Android 5.0.2 lĂ€uft
Fehler: Schwerwiegende Ausnahme: java.lang.UnsatisfiedLinkError
DSO konnte nicht geladen werden: libimagepipeline.so

UPDATE: FĂŒr diejenigen, die dieses Problem haben, lesen Sie bitte die Produktionsanleitung auf der Fresco-Website , die unser Problem löst.

Dieses Problem wird auch auf einer Vielzahl von GerÀten angezeigt:
image

Verwenden von Fresco-Version 1.9.0 und ABI-Filtern zum Reduzieren der APK-GrĂ¶ĂŸe:

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

Dieses Problem trat bei uns auf, als wir Fresco von 1.5.0 auf 1.9.0 aktualisiert haben. Dies beinhaltete auch die Entfernung der Verwendung von ReLinker und die Entfernung der explizit enthaltenen Datei proguard-fresco.pro.

Hallo, anscheinend gab es in letzter Zeit keine AktivitĂ€ten zu diesem Thema. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weitere AktivitĂ€t auftritt. Sie können dieses Problem auch als "Bug" oder "Erweiterung" bezeichnen und ich werde es offen lassen. Vielen Dank fĂŒr Ihre BeitrĂ€ge.

Stoßen. Dies ist immer noch ein Dauerthema. Dieser Absturz trat nach dem Update von 1.5.0 auf 1.9.0 auf und es wurde keine Lösung bereitgestellt, die fĂŒr mich funktioniert.

@jmbusby, du https://forum.xda-developers.com/showthread.php?t=1596800 einige ZTE-GerÀte mit v6 zu geben

@oprisnik Ich halte das fĂŒr unwahrscheinlich, da das hĂ€ufigste Telefon, das abstĂŒrzt, ein Asus Zenfone 3 Max mit einem ARM v8-Prozessor ist. Das gĂ€ngigste ZTE-Handy ist ein Blade V7, ebenfalls mit ARM v8.

Dieses Problem tritt bei der Migration von 1.8.1 auf 1.10 auf

Einige Komponenten, die wir in unserer App verwenden, zwingen uns, nur die Splits 'armeabi' und 'x86' zu verwenden ... und wenn man sich die aar-Datei der Imagepipeline fĂŒr v-1.10 ansieht, fehlt die 'armeabi'-Variante. Wird das in Zukunft so sein? Stellen Sie den Support fĂŒr diese Architektur ein?
Die .so-Dateien sind jedoch in 1.9 vorhanden.

Irgendeine Spur hier

Hallo, anscheinend gab es in letzter Zeit keine AktivitĂ€ten zu diesem Thema. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weitere AktivitĂ€t auftritt. Sie können dieses Problem auch als "Bug" oder "Erweiterung" bezeichnen und ich werde es offen lassen. Vielen Dank fĂŒr Ihre BeitrĂ€ge.

Problem ist immer noch da

Hallo Leute, schön euch wieder zu 'sehen'.

@lambdapioneer , @oprisnik Dieses Problem wurde seit Fresco 0.1 in verschiedenen Inkarnationen gemeldet. Das Problem liegt in der FĂŒlle von GerĂ€ten, die Bibliotheken laden, einige von ihnen werden zwangslĂ€ufig Probleme haben.

Die empfohlene Lösung (Aufteilen der APK) verursacht andere Probleme. Die Aufteilung des APK erfordert unter anderem separate Versionscodes fĂŒr jede ABI. Wenn Sie bereits ĂŒber mehrere Produktvarianten und Build-Typen verfĂŒgen, die alle von externen Plugins wie hockeyapp verwaltet werden, lĂ€sst die Aufteilung die Augen des Teams hĂ€ngen. An dieser Stelle wĂ€re es tatsĂ€chlich einfacher, zu Glide zu wechseln, als dies zu tun.

NativePooledByteBuffer ist nicht wirklich wichtig fĂŒr API>=21, worauf viele Apps jetzt abzielen (Dalvik ist jetzt auf 10% gesunken). Es könnte sich lohnen, es optional zu machen und nur den Standard-Java-Speicher fĂŒr die spĂ€teren Plattformen zu verwenden.

Ich kann vielleicht spĂ€ter daran arbeiten, aber ich vermute, Sie wĂŒrden es vorziehen, dass jemand noch bei FB das tut :)

Hallo @tyronen! Lange nicht gesehen' :)

Gutes Timing, wir haben tatsÀchlich jemanden, der gerade daran arbeitet (eine Java-Version von NativePooledByteBuffer und Àhnlichen Klassen) - also sollte dies bald behoben werden.

Wir haben jedoch noch einige andere offene Fragen und Ideen fĂŒr zukĂŒnftige Verbesserungen, wenn Sie erneut einen Beitrag leisten möchten.
Wir haben auch einige grĂ¶ĂŸere Änderungen fĂŒr Drawee und die Pipeline im Sinn, sodass sich die Dinge wahrscheinlich bald Ă€ndern werden.

Samsung Galaxy S9 Android 8 funktioniert immer noch nicht.

Ich stoße auch auf dieses Problem. Dies ist auf dem OPPO A51 Telefon passiert. Es wird angezeigt, wĂ€hrend ich Fresco v1.8.1 aber es ist nicht in den v0.12.0

Also ich denke das wird einfach ignoriert? Absturz auf den meisten gÀngigen GerÀten ab Version 1.8...

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

irgendein Update?

Gleiches Problem hier
Fast 8 Monate alte Ausgabe.
Weiß jemand Abhilfe? Funktioniert das Downgrade von Fresken und die Verwendung von Soloader?

Hallo zusammen, ich verstehe die Frustration ĂŒber dieses Problem.

Ich möchte Sie wissen lassen, dass wir uns der (verschiedenen) Probleme mit nativem Code und der dadurch verursachten Probleme bewusst sind. Wir arbeiten aktiv daran, Fresco ohne nativen Code zu verwenden (siehe zB ImagePipelineExperiments#disableNativeCode ). Es könnte mit Release v1.11 oder v1.12 fertig sein. Ein großes Lob an @MikaelMorales

Bei Problemen wie diesem ist es wirklich schwer fĂŒr uns, ohne eine vollstĂ€ndige Reproduktion, mit der wir arbeiten können, Fortschritte zu machen. Hier scheint es, dass es nicht ausreicht, Ausschnitte aus der Datei build.gradle zu haben. Es mĂŒsste ein minimales, aber vollstĂ€ndiges Projekt sein.

Wenn Sie ein lokales Repro haben, können Sie uns und allen in diesem Thread viel helfen, indem Sie:

  • ÜberprĂŒfen, ob es mit der Showcase-App reproduziert wird
  • Gehen Sie dann nach und nach von der Showcase-App zu Ihrer Build-Konfiguration und beobachten Sie, an welcher Stelle sie kaputt geht

Dies ist ein Problem, bei dem wir Ihre Hilfe dringend benötigen! Ich habe das Tag "bug" hinzugefĂŒgt, damit der stale-bot ruhig bleibt.

@ch4ndu , Sie haben richtig bemerkt, dass armeabi die neuesten Fresco-Versionen fehlen. Es wurde in NDK r17 entfernt (https://developer.android.com/ndk/guides/abis)

W/System.err: java.lang.UnsatisfiedLinkError: DSO zum Laden nicht gefunden: libimagepipeline.so
Wie man es repariert

ndk { abiFilters "armeabi" }
Implementierung 'com.facebook. Fresko:Fresko :1.11.0'
Implementierung 'com.facebook. fresko:animiertes-gif :1.11.0'
Implementierung 'com.facebook. fresko:animated-webp :1.11.0'
Implementierung 'com.facebook. fresko:webpsupport :1.11.0'

Hallo, ich habe vielleicht eine andere Möglichkeit gefunden, dieses Problem zu reproduzieren.

Wir verwenden Fresco 1.11, um einige statische Bilder und animierte GIFs in unsere App zu laden. Sie funktionieren beide gut, wenn wir APKs erstellen und installieren, aber nicht, wenn wir App-Bundles aus Android Studio erstellen und Bundletool verwenden, um die APKs zu erstellen ( build-apks ) und zu installieren ( install-apks ). In diesem Fall werden GIFs nicht geladen, aber die App stĂŒrzt nicht ab, wenn wir versuchen, sie zu laden, und der Versuch, ein statisches Bild zu laden, stĂŒrzt die App ab ( couldn't find DSO to load: libimagepipeline.so ).

Wir haben versucht, .experiment().setNativeCodeDisabled(true) in Frescos ImagePipelineConfig einzustellen und damit funktionieren die statischen Bilder, aber GIFs stĂŒrzen mit einem anderen Fehler ab ( couldn't find DSO to load: libgifimage.so ). Selbst wenn dies funktionieren wĂŒrde, wĂŒrden wir uns nicht wohl fĂŒhlen, etwas namens ".experiment()" in der Produktion zu verwenden.

Ich verwende das Android Gradle Plugin 3.2.1, Android Studio 3.3 Beta 4 und das Bundletool 0.7.1. Ich teste auf einem Android 8.1.0-Telefon.

Gibt es eine Möglichkeit, Fresco zuverlÀssig mit App Bundles zu verwenden? Dies hindert uns derzeit daran, auf das neue Format umzusteigen. Vielen Dank!

Dies ist der Absturz beim Versuch, GIFs nach dem Einschalten des Experiments zu laden:

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)

Der Absturz beim Versuch, statische Bilder vor dem Einschalten des Experiments zu laden, ist unten aufgefĂŒhrt. Traces sind Ă€hnlich ( couldn't find DSO to load: libimagepipeline.so ), wenn versucht wird, GIFs zu laden, ohne jedoch zur schwerwiegenden Ausnahme zu gelangen.

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)

Hallo nochmal,

Ich habe versucht, das Problem mit der Showcase-App zu reproduzieren, indem ich das Label v1.11.0 ĂŒberprĂŒft habe, aber es lĂ€sst sich nicht kompilieren. Ich habe versucht, https://frescolib.org/docs/building-from-source.html zu folgen, aber ich denke, das ist veraltet (z die neueste Version ist r18b).

Wenn ich versuche, die Showcase-App von Android Studio aus auszufĂŒhren, erhalte ich Process 'command '<mySdkPath>/ndk-bundle/ndk-build'' finished with non-zero exit value 2 .

Wenn ich ./gradlew build ĂŒber die Befehlszeile ausfĂŒhre, erhalte ich:

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

Ich habe versucht, APP_PLATFORM auf verschiedene Werte einzustellen, und die Zeile darĂŒber verschwindet, aber der Fehler ist der gleiche.

Dieses Problem tritt immer noch mit Android Studio 3.3 RC 1 auf.

Hilf mir!

java.lang.UnsatisfiedLinkError: DSO konnte nicht geladen werden: libimagepipeline.so verursacht durch: dlopen failed: "/data/data/com.vipabc.vipmobilejr.phone/lib-main/libimagepipeline.so" ist stattdessen 64-Bit von 32-bit

Dieses Problem tritt nur auf, wenn ich die okhttp-Integration verwende.
Aber ohne sie startet meine App nicht mit dem Herunterladen von Bildern.

Hallo zusammen, ich verstehe die Frustration ĂŒber dieses Problem.

Ich möchte Sie wissen lassen, dass wir uns der (verschiedenen) Probleme mit nativem Code und der dadurch verursachten Probleme bewusst sind. Wir arbeiten aktiv daran, Fresco ohne nativen Code zu verwenden (siehe zB ImagePipelineExperiments#disableNativeCode ). Es könnte mit Release v1.11 oder v1.12 fertig sein. Ein großes Lob an @MikaelMorales

Bei Problemen wie diesem ist es wirklich schwer fĂŒr uns, ohne eine vollstĂ€ndige Reproduktion, mit der wir arbeiten können, Fortschritte zu machen. Hier scheint es, dass es nicht ausreicht, Ausschnitte aus der Datei build.gradle zu haben. Es mĂŒsste ein minimales, aber vollstĂ€ndiges Projekt sein.

Wenn Sie ein lokales Repro haben, können Sie uns und allen in diesem Thread viel helfen, indem Sie:

  • ÜberprĂŒfen, ob es mit der Showcase-App reproduziert wird
  • Gehen Sie dann nach und nach von der Showcase-App zu Ihrer Build-Konfiguration und beobachten Sie, an welcher Stelle sie kaputt geht

Dies ist ein Problem, bei dem wir Ihre Hilfe dringend benötigen! Ich habe das Tag "bug" hinzugefĂŒgt, damit der stale-bot ruhig bleibt.

@ch4ndu , Sie haben richtig bemerkt, dass armeabi die neuesten Fresco-Versionen fehlen. Es wurde in NDK r17 entfernt (https://developer.android.com/ndk/guides/abis)

Sie können einfach einen OPPO r7 mit Android 5.1.1 kaufen, um dieses Problem selbst zu reproduzieren.
Bitte beachten Sie, dass Sie okhttp integrieren sollten, damit es Ausnahmen auslöst.

Gibt es also einen Bugfix oder Workaround? Ansonsten werde ich eine andere Bibliothek verwenden, da so ein Bug fĂŒr so lange Zeit ein großes NEIN ist.

Ich habe eine Art Problemumgehung gefunden. FĂŒgen Sie dies einfach dem Android-Tag in build.gradle hinzu

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

Keine so große Sache. Es gibt eine Reihe von Fehlern, die seit 2017 noch nicht in der Google-API behoben wurden. Was zu 2000 AbstĂŒrzen pro Tag in meiner App fĂŒhrte. Sie nehmen Fehler einfach nicht so wichtig wie neue Funktionen. Das einzige, das es in einer Woche behebt, ist Twitter.

Daher funktioniert auch die Ausschlussoption nicht vollstĂ€ndig. Auf einigen Samsung-GerĂ€ten (S8 und Xcover4) kam es zu AbstĂŒrzen.

Bessere Problemumgehung: Verwenden Sie Fresco 1.7.1 fĂŒr die schnelle und reibungslose Anzeige von Bildern in Simpledrawview
und benutze Glide zum Ändern der GrĂ¶ĂŸe (weil 1.7.1 die GrĂ¶ĂŸe großer Bilder manchmal nicht richtig geĂ€ndert hat - was 1.12.1 tat. Aber 1.12.1 hat diesen .so Bug/crashes).

PS.: Habe es auch mit Picasso versucht, aber es braucht zu viel Speicher.. (auch mit der Version 2.7).

(beachten Sie, dass ich nicht mehr an Fresco arbeite und als Benutzer spreche)

Wir werden die folgende Problemumgehung fĂŒr dieses Problem ausprobieren, fĂŒr das Fresco 1.11 oder höher erforderlich ist.

Konfigurieren Sie die Image-Pipeline, um Pufferspeicher anstelle des nativen Speichers zu verwenden (okhttp-Beispiel):

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

Ich empfehle diese Lösung nicht fĂŒr GerĂ€te mit Android 4.x oder niedriger UND weniger als 1 GB RAM.

Wenn Sie keine nativen Filter oder Transcoder verwenden, sollten Sie diese außerdem in Ihrer Gradle-Datei ausschließen:

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

Es wird ein oder zwei Wochen dauern, bis wir bestĂ€tigen, dass der Fehler in unserer App dadurch behoben ist. @oprisnik , kann dies zu den Dokumenten hinzugefĂŒgt werden? Außerdem sollte es mit dieser Änderung möglich sein, libimagepipeline.so von Apps auszuschließen, die es nicht verwenden, aber das scheint nicht der Fall zu sein.

Ich habe Ihre Lösung in der Produktion verwendet:

Implementierung('com.facebook.fresco:fresco:1.12.1') ​​{
Modul ausschließen: 'nativeimagefilters'
Modul ausschließen: 'nativeimagetranscoder'
}

StĂŒrzt immer noch ab:
Verursacht durch java.lang.UnsatisfiedLinkError
DSO konnte nicht geladen werden: libstatic-webp.so
com.facebook.soloader.SoLoader.initSoSources (Unbekannte Quelle)
com.facebook.soloader.SoLoader.init (Unbekannte Quelle)
com.facebook.soloader.SoLoader.init (Unbekannte Quelle)
com.facebook.soloader.SoLoader.init (Unbekannte Quelle)
com.facebook.imagepipeline.nativecode.StaticWebpNativeLoader.ensure (Unbekannte Quelle)
com.facebook.animated.webp.WebPImage.create (Unbekannte Quelle)

@galrom Dies wĂŒrde nur passieren, wenn Sie das static-webp-Modul (frĂŒher bekannt als webpsupport) einbeziehen. Dies sollten Sie nur tun, wenn Ihre App Android 4.2.0 oder niedriger unterstĂŒtzt. Selbst dann brauchen Sie es nur fĂŒr verlustfreies oder transparentes Webp - fĂŒr grundlegendes Webp können Sie ohne statisches Webp auf Android 4.0 umsteigen.

Unsere dependency graph zeigen keine Spur von static-webp module und wir erleben diesen Absturz

Ich habe das gleiche Problem mit 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

BestĂ€tigt, dass unsere App (Memrise) diesen Absturz mit dem oben geposteten Code vollstĂ€ndig beseitigt hat. Wir verwenden kein static-webp, daher ist das fĂŒr uns kein Problem.

Super, danke fĂŒr die BestĂ€tigung @tyronen. Wir aktualisieren die Dokumente. Vielleicht sollten wir dies auch zum Standardverhalten fĂŒr >4x machen.

Ich habe das gleiche Problem mit 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

Ich habe dies auch in derselben Version, 1.13.0, kennengelernt. Ich wĂŒrde also gerne wissen, wie man dies löst, ohne die arm64-UnterstĂŒtzung zu entfernen. @oprisnik
image

Warum löst Facebook dieses Problem nicht? Wir haben viele Anfragen gestellt, die immer noch nach dem Bericht fragen. So schlechte UnterstĂŒtzung durch das Facebook-Team.

Ich habe das gleiche Problem mit 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

Ich habe dies auch in derselben Version, 1.13.0, kennengelernt. Ich wĂŒrde also gerne wissen, wie man dies löst, ohne die arm64-UnterstĂŒtzung zu entfernen. @oprisnik
image

Finden Sie eine Lösung heraus?

Kannst du es mit der oben beschriebenen Lösung versuchen? https://github.com/facebook/fresco/issues/2049#issuecomment -462880309

Kannst du es mit der oben beschriebenen Lösung versuchen? #2049 (Kommentar)

Ich habe diese Lösung ausprobiert, aber die App stĂŒrzt immer noch ab

gleiches ProblemIch verwende die Implementierung 'com.facebook. Fresko:Fresko :2.0.0'

Ich benutze 'com.facebook. fresko:fresko :2.0.0'.
habe das gleiche Problem auf meinem HUAWEI HORNOR 8-GerÀt.
gerade hinzugefĂŒgt
ndk { abiFilters "armeabi", "armeabi-v7a", "x86" }
in defaultConfig hat mein Problem behoben.

Das gleiche passiert hier grundsÀtzlich in jedem System ab Version 6 und den meisten GerÀtemarken

Ich benutze 'com.facebook. fresko:fresko :2.0.0'.
habe das gleiche Problem auf meinem HUAWEI HORNOR 8-GerÀt.
gerade hinzugefĂŒgt
ndk { abiFilters "armeabi", "armeabi-v7a", "x86" }
in defaultConfig hat mein Problem behoben.

@glovebx ÜberprĂŒfen Sie, ob die BeschrĂ€nkung auf https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for- 64-bit.html

Soweit ich verstanden habe, werden ab dem 1.08.2019 neue Apps oder Updates bestehender Apps benötigt, um 64Bit zu unterstĂŒtzen

Ich habe eine Kompromisslösung, bevor dieses Problem behoben wurde.
https://github.com/facebook/fresco/issues/2381#issuecomment -516825599
Hoffe es kann dir helfen

@ShawnDongAi danke fĂŒrs Teilen 👍 ! FĂŒr uns ist es etwas zu spĂ€t :) wir sind aufgrund dieses Freskoproblems hier in eine andere Bildbibliothek umgezogen.

https://github.com/facebook/SoLoader/pull/45 sollte einige der Probleme hier beheben. Wir arbeiten auch daran, SoLoader optional zu machen, sodass Sie stattdessen andere Mechanismen verwenden können, um nativen Code zu laden.

Verwenden der RN 0.60.5-Version.
Wenn Sie sich fragen, warum Ihre App abstĂŒrzt, wenn Sie sie aus dem Playstore herunterladen, nehmen Sie die folgenden Änderungen vor

Verpackungsoptionen {
'/lib/arm64-v8a/libc++_shared.so' ausschließen ('/lib/arm64-v8a/error_causing_library.so' ausschließen)
'/lib/x86_64/libc++_shared.so' ausschließen ('/lib/arm64-v8a/error_causing_library.so' ausschließen)

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

}

Wenn Sie nicht wissen, welche Bibliothek den Absturz verursacht, laden Sie Ihr Bundle in das Firebase-Testlabor hoch und ĂŒberprĂŒfen Sie es. Es wird Ihnen sagen, welche Bibliothek den Fehler auslöst

@Balajipss schließt nicht alle 64-Bit-Bibliotheken aus und verursacht Probleme mit der 64-Bit-Anforderung von Google: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit .html ?

@wasefakhtar Du kannst folgende Änderungen vornehmen

Verpackungsoptionen {
'/lib/arm64-v8a/libc++_shared.so' ausschließen
'/lib/x86_64/libc++_shared.so' ausschließen
pickFirst '/lib/x86/libc++_shared.so'
pickFirst '/lib/armeabi-v7a/libc++_shared.so'
}

Hat jemand eine Schritt-fĂŒr-Schritt-Liste, um dieses Problem zu reproduzieren? Wir haben es in der Produktion vor uns, aber wir können es nicht lokal reproduzieren, selbst mit demselben Telefon, das unser AbsturzbenachrichtigungsgerĂ€t anzeigt.

@juanimoli nicht sicher, aber die meisten Oppo-GerÀte mit OS 5 scheinen mit dem Problem konfrontiert zu sein.

@waseefakhtar Ich konnte das Problem reproduzieren,

Ich konnte es beheben, indem ich 2381#issuecomment-516825599 ohne abiFilters oder

Ich habe Fresco 1.13.0 verwendet und es war die ganze Zeit in Ordnung. Beim Update auf 2.0.0 bekam ich dieses Problem. Dann habe ich meine neue apk ĂŒberprĂŒft, ich habe keine libimagepipeline.so in meiner apk gefunden. Dann bereinige ich mein Projekt, baue eine neue APK. und ich habe libimagepipeline.so in meiner neuen apk . und das Problem ist behoben, dies ist möglicherweise ein Problem von Android Studio!

Ich habe dieses Problem auf diese Weise gelöst!

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

Ich aktualisiere auf AndroidX und dann hatte ich plötzlich couldn't find DSO to load: libimagepipeline.so in der lokalen Umgebung, ich konnte es beheben, indem ich das Projekt in einen anderen Pfad kopierte .

Ich habe keine Ahnung, aber ich vermute, dass etwas mit dem Gradle-Cache schief gelaufen ist. (obwohl der Gradle-Cache gelöscht wurde)

Ich wĂŒrde gerne die Ursache wissen, wenn jemand weiß.

Geschieht auf unserer Seite nach dem Upgrade auf Fresco 2.1.0

Ich habe es behoben, indem ich die folgenden Änderungen vorgenommen habe:

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

Nach dieser Änderung verwendet Fresco den nativen Loader anstelle von soLoader, um alle nativen Bibliotheken zu laden.

Sie sollten auch exclude group: 'com.facebook.fresco', module: 'soloader' hinzufĂŒgen. Weitere Informationen finden Sie in der Version 2.1.0:

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

Ich bin vor kurzem von Picasso zu Fresco gewechselt und habe gerade die aktualisierte App im Playstore gestartet. Jetzt am allerersten Tag sehe ich diesen Fehler in meiner App. Der Absturz wurde auf Android-Version 7.1.2 auf Trend-GerÀten beobachtet

Screenshot (158)

Gibt es jetzt eine funktionierende Lösung?

Potentielle Lösungen:

  • Verwenden Sie die neueste Fresco-Version. SoLoader wird stĂ€ndig aktualisiert und Probleme mit bestimmten GerĂ€ten behoben. Oder helfen Sie uns herauszufinden, warum dies bei Ihren GerĂ€ten passiert und tragen Sie zu SoLoader bei.
  • Verwenden Sie den systemeigenen Bibliothekslader anstelle von SoLoader oder Ihre eigene Implementierung https://github.com/facebook/fresco/issues/2049#issuecomment -615255009
  • Verwenden Sie nur Java-Fresco ohne nativen Code, siehe https://github.com/facebook/fresco/releases/tag/v2.1.0 (dies ist Picasso wahrscheinlich am Ă€hnlichsten, da auch kein nativer Code fĂŒr Leistungsverbesserungen verwendet wird).

@oprisnik Ich habe die oben genannten 3 Lösungen ausprobiert, die auf 2.2.0 aktualisiert wurden, und die App in Firebase getestet, aber wÀhrend des Tests habe ich diesen Fehler erhalten

java.lang.RuntimeException: Anwendung kann nicht erstellt werden com.example.xyz.MyApplication: java.lang.RuntimeException: Falsche Einrichtung des nativen Codes, Reflektion fehlgeschlagen.

nur auf GerÀten mit API 19.

ich hatte gebraucht

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

Initialisiertes Fresko mit

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

Der vollstÀndige Stack-Trace ist

java.lang.RuntimeException: Anwendung kann nicht erstellt werden com.example.xyz.MyApplication: java.lang.RuntimeException: Falsche Einrichtung des nativen Codes, Reflektion fehlgeschlagen.
TÖDLICHE AUSNAHME: main
Prozess: com.example.xyz, PID: 29863
java.lang.RuntimeException: Anwendung kann nicht erstellt werden com.example.xyz.MyApplication: java.lang.RuntimeException: Falsche Einrichtung des nativen Codes, Reflektion fehlgeschlagen.
bei android.app.ActivityThread.handleBindApplication(ActivityThread.java:4423)
bei android.app.ActivityThread.access$1500(ActivityThread.java:139)
bei android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
bei android.os.Handler.dispatchMessage(Handler.java:102)
bei android.os.Looper.loop(Looper.java:136)
bei android.app.ActivityThread.main(ActivityThread.java:5097)
at java.lang.reflect.Method.invokeNative(Native Methode)
at java.lang.reflect.Method.invoke(Method.java:515)
unter com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
unter com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Methode)
Verursacht durch: java.lang.RuntimeException: Falsche Einrichtung des nativen Codes, Reflektion fehlgeschlagen.
unter com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder(PlatformDecoderFactory.java:51)
unter com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformDecoder(ImagePipelineFactory.java:312)
unter com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformBitmapFactory(ImagePipelineFactory.java:304)
unter com.facebook.imagepipeline.core.ImagePipelineFactory.getAnimatedFactory(ImagePipelineFactory.java:164)
unter com.facebook.imagepipeline.core.ImagePipelineFactory.getImageDecoder(ImagePipelineFactory.java:227)
unter com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerFactory(ImagePipelineFactory.java:327)
unter com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerSequenceFactory(ImagePipelineFactory.java:360)
unter com.facebook.imagepipeline.core.ImagePipelineFactory.getImagePipeline(ImagePipelineFactory.java:282)
unter com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:52)
unter com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:43)
unter com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:36)
unter com.facebook.drawee.backends.pipeline.Fresco.initializeDrawee(Fresco.java:121)
unter com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:110)
unter com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:54)
unter com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:46)
unter com.example.xyz.MyApplication.onCreate(MyApplication.java:26)
bei android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1030)
bei android.app.ActivityThread.handleBindApplication(ActivityThread.java:4420)
... 10 mehr
Verursacht durch: java.lang.ClassNotFoundException: com.facebook.imagepipeline.platform.KitKatPurgeableDecoder
at java.lang.Class.classForName(native Methode)
at java.lang.Class.forName(Class.java:251)
at java.lang.Class.forName(Class.java:216)
unter com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder(PlatformDecoderFactory.java:44)
... 27 weitere
Verursacht durch: java.lang.NoClassDefFoundError: com/facebook/imagepipeline/platform/KitKatPurgeableDecoder
... 31 mehr
Verursacht durch: java.lang.ClassNotFoundException: Klasse "com.facebook.imagepipeline.platform.KitKatPurgeableDecoder" im Pfad: DexPathList[[zip file "/data/app/com.example.xyz-1.apk" nicht gefunden, ZIP-Datei "/data/data/com.example.xyz/code_cache/secondary-dexes/com.example.xyz-1.apk.classes2.zip", ZIP-Datei "/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]]
bei dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
... 31 mehr

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen