Fresco: Pengecualian Fatal: java.lang.UnsatisfiedLinkError tidak dapat menemukan DSO untuk dimuat: libimagepipeline.so / com.facebook.imagepipeline.memory.NativeMemoryChunk

Dibuat pada 11 Feb 2018  ·  87Komentar  ·  Sumber: facebook/fresco

Keterangan

Perbarui ke versi 1.8.0, Crashlytic melaporkan masalah ini.
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)

Reproduksi

Larutan

Saya ingin tahu apakah pembaruan ke 1.8.1 dapat memperbaiki masalah ini atau saya perlu menambahkan compile 'com.facebook.soloader:soloader:0.1.0+' ke build.gradle

informasi tambahan

  • Versi lukisan dinding:
    compile 'com.facebook.fresco:fresco:1.8.0'
    compile 'com.facebook.fresco:animated-gif:1.8.10'
  • Versi platform:
    OPPO - OS: Android 5.1.1
    PERANGKAT: R7sfg / R7g / A51fa
bug enhancement

Komentar yang paling membantu

Saya menggunakan versi 1.8.1 juga memiliki masalah yang sama. Perangkatnya adalah 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

tidak dapat menemukan DSO untuk dimuat: 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 baut.Tugas$4.run(Tugas.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)

Semua 87 komentar

Bagaimana pengaturan build Anda? Apakah Anda menggunakan ABI split? http://frescolib.org/docs/shipping.html

@oprisnik
pengaturan bangunan saya
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 } }

dan konfigurasi 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.** { *;}

Saya tidak tahu mengapa itu hanya terjadi di OPPO - OS: Android 5.1.1 dan sebelum memperbarui ke versi 1.8.0, masalah ini tidak terjadi dengan konfigurasi build yang sama

Hai @hsandyque , Anda tidak perlu ketergantungan ekstra pada soloader karena sekarang dikirimkan dengan Fresco sejak 1.8.0. Saya akan merekomendasikan memperbarui ke 1.8.1 karena memperbaiki bug lainnya.

File build.gradle Anda harus mereferensikan file proguard-fresco.pro seperti yang dijelaskan dalam tautan yang diposting @oprisnik .

Untuk klarifikasi: apakah bug ini _only_ terjadi pada perangkat tertentu? Apakah ada output adb logcat yang dapat Anda bagikan?

Hai @lambdapioneer ,
Untuk klarifikasi: apakah bug ini hanya terjadi pada perangkat tertentu? Apakah ada keluaran adb logcat yang dapat Anda bagikan?
Ya, Itu hanya terjadi pada perangkat OPPO Android 5.1.1 (R7sfg / R7g / A51fa)
Dan lampirannya adalah logcats
1.txt
2.txt

Hai @hsandyque , mengingat itu hanya terjadi pada ponsel Oppo menunjukkan bahwa cara perpustakaan biner dibundel dan cara ponsel memuatnya tidak bagus.

Saya tidak memiliki akses ke ponsel OPPO saat ini dan saya tidak dapat menemukan petunjuk yang lebih baik saat mencari :/

(a) Apakah ini juga terjadi ketika menginstal aplikasi showcase yang kami miliki di repositori kami? (itu akan membawa saya lebih dekat untuk men-debug ini setelah saya memegang ponsel OPPO)
(b) Bisakah Anda memberikan output dari menjalankan unzip -l your_release.apk | grep lib/ pada APK rilis Anda? Itu akan menunjukkan file mana yang sebenarnya dibundel.

Hai @lambdapioneer ,

Saya tidak memiliki ponsel OPPO (Android 5.1.1), masalah ini dilaporkan dari Crashlytics. Saya tidak tahu apakah ini juga terjadi di aplikasi showcase.

Dan daftar bundel sebagai berikut:
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

Hai @lambdapioneer ,
lebih banyak 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
saya memiliki masalah yang sama bagaimana cara memperbaikinya?

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

@hsandyque

Apakah Anda menentukan filter ABI (tipe CPU) apa pun di file gradle aplikasi Anda?

@erikandre
Saya tidak menggunakan filter ABI apa pun di file gradle saya, dan sudah mencantumkan pengaturan detail pada balasan sebelumnya

Saya menggunakan versi 1.8.1 juga memiliki masalah yang sama. Perangkatnya adalah 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

tidak dapat menemukan DSO untuk dimuat: 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 baut.Tugas$4.run(Tugas.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)

Ada perbaikan? Ini log saya
Pengecualian Fatal: java.lang.UnsatisfiedLinkError: tidak dapat menemukan DSO untuk dimuat: libimagepipeline.so
di com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:522)
di com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:420)
di com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:370)
di com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:335)
di com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:42)
di com.facebook.imagepipeline.memory.NativeMemoryChunk.(NativeMemoryChunk.java:33)
di com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:58)
di com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:20)
di com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:257)
di com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.(NativePooledByteBufferOutputStream.java:51)
di com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream(NativePooledByteBufferFactory.java:141)
di com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream(NativePooledByteBufferFactory.java:26)
di com.facebook.imagepipeline.producers.NetworkFetchProducer.onResponse(NetworkFetchProducer.java:90)
di com.facebook.imagepipeline.producers.NetworkFetchProducer$1.onResponse(NetworkFetchProducer.java:70)
di com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher$2.onResponse(OkHttpNetworkFetcher.java:180)
di okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
di okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
di java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
di java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
di java.lang.Thread.run(Thread.java:818)

image

@wangshuwen1107 @csbz17027 @ignaciogs
Karena Facebook masih memeriksa masalahnya, saya menemukan solusi solusi yang dapat memperbaiki masalah ini untuk sementara.

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

Log yang saya temukan adalah perangkat khusus ini menjalankan aplikasi dalam 32-bit (saya tidak tahu mengapa, mungkin bug kerangka kerja) tetapi libimagepipeline.so adalah 64-bit.

Tambahkan filter api sebagai snap kode berikut, lewati "arm64-v8a"
defaultConfig { ... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64" } }
Ini bukan solusi yang tepat tapi mungkin itu akan memperbaiki masalah pada awalnya dan kemudian kami menunggu pembaruan

@hsandyque terima kasih banyak, tanggapan Anda sangat membantu, Menantikan pembaruan Anda!

@oprisnik @erikandre @lambdapioneer
Apakah Anda punya ide tentang cara memperbaiki masalah ini?

@hsandyque apakah Anda memuat dependensi lain sehingga sistem mungkin bingung dengan campuran perpustakaan 32bit dan 64bit?

Dalam hal ini saya sarankan Anda menggunakan baris abiFilters :

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

Bahkan mungkin menjatuhkan mips sama sekali jika Anda tidak secara khusus menargetkan perangkat khusus.

Masih mengalami masalah ini pada v1.9.0.

Menambahkan

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

Bekerja untuk saya. Tapi dengan membaca percakapan di atas, sepertinya itu bukan solusi yang "benar"?

Tim saya memiliki masalah yang sama, belum mendapatkan begitu banyak laporan kerusakan (Karena OOM fresco) dari perpustakaan ke-3 seperti ini, saatnya untuk mengucapkan selamat tinggal!

saya menggunakan
ndk { abiFilters "armeabi,armeabi-v7a" }
dan
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'
juga mengalami kecelakaan yang sama.

Masih memiliki masalah ini pada v1.9.0.

Masih menghadapi masalah itu pada 1.9.0 dengan abis yang didukung "armeabi", "armeabi-v7a", "x86"

Masih memiliki masalah ini pada v1.9.0.

Saya juga mengalami masalah yang sama. Aplikasi saya mogok saat dibuka. Itu hanya terjadi pada HTC One E9PLUS dual sim yang berjalan di android 5.0.2
Kesalahan: Pengecualian Fatal: java.lang.UnsatisfiedLinkError
tidak dapat menemukan DSO untuk dimuat: libimagepipeline.so

PEMBARUAN: Bagi mereka yang mengalami masalah ini, silakan periksa panduan produksi di situs web Fresco , yang menyelesaikan masalah kami.

Juga melihat masalah ini di berbagai perangkat:
image

Menggunakan Fresco versi 1.9.0 dan filter ABI untuk mengurangi ukuran APK:

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

Masalah ini mulai terjadi pada kami ketika kami memperbarui Fresco dari 1.5.0 ke 1.9.0. Ini juga melibatkan penghapusan penggunaan ReLinker dan penghapusan file proguard-fresco.pro yang disertakan secara eksplisit.

Hai, sepertinya tidak ada aktivitas tentang masalah ini baru-baru ini. Apakah masalah sudah diperbaiki, atau masih membutuhkan perhatian masyarakat? Masalah ini dapat ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "bug" atau "peningkatan" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Menabrak. Ini masih menjadi masalah yang sedang berlangsung. Kerusakan ini terjadi setelah memperbarui dari 1.5.0 ke 1.9.0 dan tidak ada solusi yang diberikan yang berfungsi untuk saya.

@jmbusby Anda hanya menargetkan lengan v7a. Bisakah beberapa perangkat menjadi armv6 atau bahkan armv5? Misalnya tampaknya ada beberapa perangkat ZTE dengan v6 menurut https://forum.xda-developers.com/showthread.php?t=1596800

@oprisnik Saya pikir itu tidak mungkin, karena ponsel paling umum yang mogok adalah Asus Zenfone 3 Max yang memiliki prosesor ARM v8. Ponsel ZTE yang paling umum adalah Blade V7, juga dengan ARM v8.

Saya melihat masalah ini saat bermigrasi ke 1.10 dari 1.8.1

Beberapa komponen yang kami gunakan di aplikasi kami memaksa kami untuk hanya menggunakan pemisahan 'armeabi' dan 'x86'...dan melihat file aar Imagepipeline untuk v-1.10, varian 'armeabi' tidak ada. Apakah ini akan menjadi kasus ke depan? Apakah Anda menjatuhkan dukungan untuk arsitektur itu?
File .so ada di 1.9.

Ada petunjuk di sini

Hai, sepertinya tidak ada aktivitas tentang masalah ini baru-baru ini. Apakah masalah sudah diperbaiki, atau masih membutuhkan perhatian masyarakat? Masalah ini dapat ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "bug" atau "peningkatan" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Masalah masih ada

Hai guys, senang 'melihat' kalian lagi.

@lambdapioneer , @oprisnik masalah ini telah dilaporkan dalam berbagai inkarnasi sejak Fresco 0.1. Masalahnya adalah kebanyakan perangkat memuat perpustakaan, beberapa di antaranya pasti memiliki masalah.

Solusi yang disarankan (membagi APK) menyebabkan masalah lain. Antara lain, pemisahan APK memerlukan kode versi terpisah untuk setiap ABI. Saat Anda sudah memiliki beberapa ragam produk dan tipe build, yang semuanya dikelola oleh plugin eksternal seperti hockeyapp, pemisahan membuat mata tim terkulai. Pada titik ini sebenarnya akan lebih mudah untuk beralih ke Glide daripada melakukannya.

NativePooledByteBuffer tidak terlalu penting untuk API>=21, yang sekarang ditargetkan oleh banyak aplikasi (Dalvik sekarang turun menjadi 10%). Mungkin layak menjadikannya opsional, dan hanya menggunakan memori Java standar untuk platform selanjutnya.

Saya mungkin bisa mengerjakan ini nanti, tetapi saya kira Anda lebih suka seseorang yang masih di FB untuk melakukan itu :)

Hai @tyronen! Lama tidak bertemu' :)

Waktu yang tepat, kami sebenarnya memiliki seseorang yang mengerjakan ini sekarang (versi Java dari NativePooledByteBuffer dan kelas serupa) - jadi ini harus segera diperbaiki.

Namun, kami memiliki beberapa masalah dan ide terbuka lainnya untuk perbaikan di masa mendatang jika Anda ingin berkontribusi lagi.
Kami juga memiliki beberapa perubahan yang lebih besar dalam pikiran untuk Drawee dan pipeline, jadi kemungkinan besar akan segera berubah.

Samsung Galaxy S9 Android 8 masih tidak berfungsi.

Saya mengalami masalah ini juga. Ini terjadi pada telepon OPPO A51 , muncul saat saya menggunakan Fresco v1.8.1 tetapi tidak muncul dalam v0.12.0

Jadi saya kira ini hanya akan Diabaikan? Crash pada perangkat yang paling populer mulai dari versi 1.8...

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

perubahan apapun?

Masalah yang sama di sini
Edisi hampir 8 bulan.
Ada yang tahu solusinya? Apakah menurunkan fresco dan menggunakan soloader berfungsi?

Hai semuanya, saya mengerti rasa frustrasi dengan masalah ini.

Saya ingin memberi tahu Anda bahwa kami sangat menyadari (berbagai) masalah dengan kode asli dan masalah yang ditimbulkannya. Kami secara aktif bekerja untuk mengizinkan penggunaan Fresco tanpa kode asli apa pun (lihat misalnya ImagePipelineExperiments#disableNativeCode ). Mungkin sudah siap dengan rilis v1.11 atau v1.12. Salut untuk @MikaelMorales

Pada masalah seperti ini, sangat sulit bagi kami untuk membuat kemajuan tanpa repro lengkap yang dapat kami tangani. Di sini tampaknya memiliki cuplikan dari file build.gradle saja tidak cukup. Itu harus menjadi proyek minimal, tetapi lengkap.

Jika Anda memiliki repro lokal, Anda dapat banyak membantu kami dan semua orang di utas ini dengan:

  • Memeriksa apakah itu mereproduksi dengan aplikasi showcase
  • Kemudian secara bertahap beralih dari aplikasi etalase ke konfigurasi build Anda dan mengamati titik mana yang rusak

Ini adalah masalah di mana kami sangat membutuhkan bantuan Anda! Saya telah menambahkan tag "bug" agar bot basi tetap diam.

@ch4ndu , Anda telah mengamati dengan benar bahwa armeabi tidak memiliki versi Fresco terbaru. Itu telah dihapus di NDK r17 (https://developer.android.com/ndk/guides/abis)

W/System.err: java.lang.UnsatisfiedLinkError: tidak dapat menemukan DSO untuk dimuat: libimagepipeline.so
Bagaimana memperbaikinya

ndk { abiFilter "armeabi" }
implementasi 'com.facebook. lukisan dinding: lukisan dinding : 1.11.0'
implementasi 'com.facebook. fresco:animasi-gif :1.11.0'
implementasi 'com.facebook. fresco:animasi-webp :1.11.0'
implementasi 'com.facebook. fresco: dukungan web : 1.11.0'

Hai, saya mungkin telah menemukan cara lain untuk mereproduksi masalah ini.

Kami menggunakan Fresco 1.11 untuk memuat beberapa gambar statis dan GIF animasi di aplikasi kami. Keduanya berfungsi dengan baik saat kami membuat dan menginstal APK, tetapi tidak saat kami membuat bundel aplikasi dari Android Studio dan kami menggunakan bundletool untuk membangun ( build-apks ) dan menginstal ( install-apks ) APK. Dalam hal ini, GIF tidak dimuat tetapi aplikasi tidak mogok saat kami mencoba memuatnya dan mencoba memuat gambar statis membuat aplikasi mogok ( couldn't find DSO to load: libimagepipeline.so ).

Kami telah mencoba mengatur .experiment().setNativeCodeDisabled(true) di Fresco's ImagePipelineConfig dan dengan itu gambar statis berfungsi tetapi GIF mogok dengan kesalahan yang berbeda ( couldn't find DSO to load: libgifimage.so ). Bahkan jika ini berhasil, kita tidak akan nyaman menggunakan sesuatu yang disebut ".experiment()" dalam produksi.

Saya menggunakan Plugin Android Gradle 3.2.1, Android Studio 3.3 beta 4 dan bundletool 0.7.1. Saya sedang menguji pada ponsel Android 8.1.0.

Apakah ada cara untuk menggunakan Fresco dengan bundel aplikasi dengan andal? Ini menghalangi kami untuk pindah ke format baru saat ini. Terima kasih!

Ini adalah kerusakan saat mencoba memuat GIF setelah mengaktifkan eksperimen:

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)

Kerusakan saat mencoba memuat gambar statis sebelum mengaktifkan eksperimen ada di bawah. Jejaknya serupa ( couldn't find DSO to load: libimagepipeline.so ) ketika mencoba memuat GIF tetapi tanpa sampai ke pengecualian 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)

Halo lagi,

Saya telah mencoba mereproduksi masalah dengan aplikasi showcase, memeriksa label v1.11.0, tetapi tidak dapat dikompilasi. Saya sudah mencoba mengikuti https://frescolib.org/docs/building-from-source.html tapi saya pikir itu sudah usang (misalnya berbicara tentang folder Android-ndk/r10e tetapi itu tidak ada di instalasi saya dan versi terbaru adalah r18b).

Jika saya mencoba menjalankan aplikasi showcase dari Android Studio, saya mendapatkan Process 'command '<mySdkPath>/ndk-bundle/ndk-build'' finished with non-zero exit value 2 .

Menjalankan ./gradlew build dari baris perintah, saya mendapatkan:

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

Saya sudah mencoba mengatur APP_PLATFORM ke nilai yang berbeda dan baris tentangnya menghilang tetapi kesalahannya sama.

Masalah ini masih terjadi dengan Android Studio 3.3 RC 1.

tolong aku!

java.lang.UnsatisfiedLinkError: tidak dapat menemukan DSO untuk dimuat: libimagepipeline.so disebabkan oleh: dlopen failed: "/data/data/com.vipabc.vipmobilejr.phone/lib-main/libimagepipeline.so" adalah 64-bit sebagai gantinya dari 32-bit

Saya hanya memiliki masalah ini ketika saya menggunakan integrasi okhttp.
Tetapi tanpa itu, aplikasi saya tidak akan mulai mengunduh gambar.

Hai semuanya, saya mengerti rasa frustrasi dengan masalah ini.

Saya ingin memberi tahu Anda bahwa kami sangat menyadari (berbagai) masalah dengan kode asli dan masalah yang ditimbulkannya. Kami secara aktif bekerja untuk mengizinkan penggunaan Fresco tanpa kode asli apa pun (lihat misalnya ImagePipelineExperiments#disableNativeCode ). Mungkin sudah siap dengan rilis v1.11 atau v1.12. Salut untuk @MikaelMorales

Pada masalah seperti ini, sangat sulit bagi kami untuk membuat kemajuan tanpa repro lengkap yang dapat kami tangani. Di sini tampaknya memiliki cuplikan dari file build.gradle saja tidak cukup. Itu harus menjadi proyek minimal, tetapi lengkap.

Jika Anda memiliki repro lokal, Anda dapat banyak membantu kami dan semua orang di utas ini dengan:

  • Memeriksa apakah itu mereproduksi dengan aplikasi showcase
  • Kemudian secara bertahap beralih dari aplikasi etalase ke konfigurasi build Anda dan mengamati titik mana yang rusak

Ini adalah masalah di mana kami sangat membutuhkan bantuan Anda! Saya telah menambahkan tag "bug" agar bot basi tetap diam.

@ch4ndu , Anda telah mengamati dengan benar bahwa armeabi tidak memiliki versi Fresco terbaru. Itu telah dihapus di NDK r17 (https://developer.android.com/ndk/guides/abis)

Anda cukup membeli OPPO r7 dengan Android 5.1.1 untuk mereproduksi masalah ini sendiri.
Harap dicatat bahwa Anda harus berintegrasi dengan okhttp untuk membuatnya mengeluarkan pengecualian.

Jadi apakah ada perbaikan bug atau solusi? Kalau tidak, saya akan menggunakan perpustakaan lain, karena bug seperti itu untuk waktu yang lama adalah TIDAK besar.

Saya telah menemukan solusinya.. Cukup tambahkan ini ke Tag android di build.gradle

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

Bukan masalah besar. Ada banyak bug yang belum terselesaikan di API Google sejak 2017. Yang menyebabkan 2000 crash sehari di aplikasi saya. Mereka hanya tidak menganggap bug sama pentingnya dengan fitur baru. Satu-satunya yang memperbaikinya dalam seminggu adalah Twitter.

Jadi, opsi pengecualian juga tidak berfungsi sepenuhnya.. Terjadi crash pada beberapa perangkat Samsung (S8 dan Xcover4).

Solusi yang lebih baik: gunakan fresco 1.7.1 untuk menampilkan gambar dengan cepat & mulus di simpledrawview
dan gunakan glide untuk mengubah ukuran (karena 1.7.1 terkadang tidak mengubah ukuran gambar besar dengan benar - yang dilakukan 1.12.1. Tetapi 1.12.1 memiliki .so bug/crash ini).

PS.: Juga mencoba Picasso, tetapi perlu banyak memori.. (bahkan dengan versi 2.7).

(perhatikan bahwa saya tidak lagi bekerja di Fresco dan saya berbicara sebagai pengguna)

Kami akan mencoba solusi berikut untuk masalah ini, yang membutuhkan Fresco 1.11 atau lebih baru.

Konfigurasikan pipa gambar untuk menggunakan memori buffer alih-alih memori asli (contoh okhttp):

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

Saya tidak merekomendasikan solusi ini untuk perangkat yang menjalankan Android 4.x atau lebih rendah DAN RAM kurang dari 1GB.

Selain itu, jika Anda tidak menggunakan filter atau transcoder asli, Anda harus mengecualikannya dalam file gradle Anda:

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

Kami perlu satu atau dua minggu untuk mengonfirmasi bahwa ini menghilangkan bug di aplikasi kami. @oprisnik , dapatkah ini ditambahkan ke dokumen? Juga, dengan perubahan ini seharusnya memungkinkan untuk mengecualikan libimagepipeline.so dari aplikasi yang tidak menggunakannya, tetapi tampaknya tidak demikian.

Saya telah menggunakan solusi Anda dalam produksi:

implementasi('com.facebook.fresco: fresco: 1.12.1') ​​{
kecualikan modul: 'nativeimagefilters'
kecualikan modul: 'nativeimagetranscoder'
}

Masih macet:
Disebabkan oleh java.lang.UnsatisfiedLinkError
tidak dapat menemukan DSO untuk dimuat: libstatic-webp.so
com.facebook.soloader.SoLoader.initSoSources (Sumber Tidak Dikenal)
com.facebook.soloader.SoLoader.init (Sumber Tidak Dikenal)
com.facebook.soloader.SoLoader.init (Sumber Tidak Dikenal)
com.facebook.soloader.SoLoader.init (Sumber Tidak Dikenal)
com.facebook.imagepipeline.nativecode.StaticWebpNativeLoader.ensure (Sumber Tidak Dikenal)
com.facebook.animated.webp.WebPImage.create (Sumber Tidak Dikenal)

@galrom ini hanya akan terjadi jika Anda menyertakan modul static-webp (sebelumnya dikenal sebagai webpsupport). Anda hanya boleh melakukan ini jika aplikasi Anda mendukung Android 4.2.0 atau lebih rendah. Meski begitu, Anda hanya membutuhkannya untuk webp lossless atau transparan - untuk webp dasar, Anda dapat turun ke Android 4.0 tanpa webp statis.

dependency graph tidak menunjukkan jejak static-webp module dan kami mengalami crash ini

Saya memiliki masalah yang sama dengan 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

Dikonfirmasi bahwa aplikasi kami (Memrise) telah menghilangkan kerusakan ini sepenuhnya menggunakan kode yang saya posting di atas. Kami tidak menggunakan static-webp sehingga tidak menjadi masalah bagi kami.

Luar biasa, terima kasih telah mengonfirmasi @tyronen. Kami akan memperbarui dokumen. Mungkin kita juga harus menjadikan ini sebagai perilaku default untuk >4x.

Saya memiliki masalah yang sama dengan 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

Saya bertemu ini juga di versi yang sama, 1.13.0 Jadi, saya ingin tahu bagaimana menyelesaikan ini tanpa menghapus dukungan arm64. @oprisnik
image

Mengapa Facebook tidak menyelesaikan masalah ini? Kami telah memposting banyak pertanyaan, mereka masih meminta laporan. Dukungan buruk seperti itu oleh Tim Facebook.

Saya memiliki masalah yang sama dengan 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

Saya bertemu ini juga di versi yang sama, 1.13.0 Jadi, saya ingin tahu bagaimana menyelesaikan ini tanpa menghapus dukungan arm64. @oprisnik
image

Apakah Anda menemukan solusi?

Bisakah Anda mencoba dengan solusi yang diuraikan di atas? https://github.com/facebook/fresco/issues/2049#issuecomment -462880309

Bisakah Anda mencoba dengan solusi yang diuraikan di atas? #2049 (komentar)

Saya telah mencoba solusi ini masih crash aplikasi

masalah yang sama,Saya menggunakan implementasi 'com.facebook. lukisan dinding: lukisan dinding : 2.0.0'

saya menggunakan 'com.facebook. lukisan dinding: lukisan dinding :2.0.0'.
mendapat masalah yang sama pada perangkat HUAWEI HORNOR 8 saya.
baru saja ditambahkan
ndk { abiFilters "armeabi", "armeabi-v7a", "x86" }
di defaultConfig menyelesaikan masalah saya.

sama di sini, itu terjadi pada dasarnya di setiap sistem versi 6 ke atas dan sebagian besar merek perangkat

saya menggunakan 'com.facebook. lukisan dinding: lukisan dinding :2.0.0'.
mendapat masalah yang sama pada perangkat HUAWEI HORNOR 8 saya.
baru saja ditambahkan
ndk { abiFilters "armeabi", "armeabi-v7a", "x86" }
di defaultConfig menyelesaikan masalah saya.

@glovebx Anda mungkin ingin memeriksa apakah membatasi hingga 32Bit tidak akan menyebabkan masalah dengan persyaratan Google untuk 64 Bit: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for- 64-bit.html

Dari apa yang saya pahami, aplikasi baru atau pembaruan aplikasi yang ada akan diperlukan untuk mendukung 64Bit mulai 1/8/2019

Saya memiliki solusi kompromi sebelum masalah ini diperbaiki.
https://github.com/facebook/fresco/issues/2381#issuecomment -516825599
Semoga dapat membantu Anda

@ShawnDongAi terima kasih telah membagikan ini 👍! Bagi kami ini agak terlambat :) kami pindah ke perpustakaan gambar lain karena masalah fresco ini di sini.

https://github.com/facebook/SoLoader/pull/45 harus memperbaiki beberapa masalah di sini. Kami juga sedang berupaya menjadikan SoLoader opsional, sehingga Anda dapat menggunakan mekanisme lain untuk memuat kode asli.

Menggunakan RN versi 0.60.5.
Jika Anda bertanya-tanya mengapa aplikasi Anda mogok jika Anda mengunduhnya dari playstore, lakukan perubahan di bawah ini

opsi pengemasan {
kecualikan '/lib/arm64-v8a/libc++_shared.so' (kecualikan '/lib/arm64-v8a/error_causing_library.so')
kecualikan '/lib/x86_64/libc++_shared.so' (kecualikan '/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')

}

Jika Anda tidak tahu library mana yang menyebabkan error, unggah bundel Anda di lab pengujian Firebase, lalu periksa. Ini akan memberi tahu Anda perpustakaan mana yang melakukan kesalahan

@Balajipss tidak akan mengecualikan semua perpustakaan 64-bit yang menyebabkan masalah dengan persyaratan 64-bit Google: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit .html ?

@waseefakhtar Anda dapat membuat perubahan berikut

opsi pengemasan {
kecualikan '/lib/arm64-v8a/libc++_shared.so'
kecualikan '/lib/x86_64/libc++_shared.so'
pickFirst '/lib/x86/libc++_shared.so'
pickFirst '/lib/armeabi-v7a/libc++_shared.so'
}

Adakah yang punya daftar langkah demi langkah untuk mereproduksi masalah ini? Kami menghadapinya dalam produksi tetapi kami tidak dapat mereproduksinya secara lokal, bahkan dengan telepon yang sama yang ditunjukkan oleh pemberitahuan kerusakan kami.

@juanimoli tidak yakin tetapi sebagian besar perangkat Oppo yang menjalankan OS 5 tampaknya menghadapi masalah.

@waseefakhtar Saya dapat mereproduksi masalah dengan mengkompilasi aplikasi untuk "armeabi-v7a" dalam opsi file json spesifikasi perangkat dari bundletool (menggunakan AppBundle). Menginstal aplikasi di perangkat yang didukung dan crash langsung muncul.

Saya dapat memperbaikinya dengan menerapkan 2381#issuecomment-516825599 tanpa abiFilters atau pengecualian yang ditambahkan.

Saya menggunakan fresco 1.13.0 dan itu baik-baik saja sepanjang waktu. Ketika memperbarui ke 2.0.0, saya mendapatkan masalah ini. Kemudian saya memeriksa apk baru saya, saya tidak menemukan libimagepipeline.so di apk saya. Kemudian saya membersihkan proyek saya, membangun APK baru. dan saya memiliki libimagepipeline.so di apk baru saya . dan masalahnya sudah diperbaiki, ini mungkin masalah dari studio Android!

Saya telah memecahkan masalah ini dengan cara ini!

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

Saya memperbarui ke AndroidX dan kemudian tiba-tiba saya memiliki couldn't find DSO to load: libimagepipeline.so di lingkungan lokal, saya berhasil memperbaikinya dengan menyalin proyek ke jalur lain .

Saya tidak tahu, tetapi tebak ada sesuatu dengan cache Gradle yang salah. (meskipun cache Gradle dihapus)

Saya ingin tahu akar masalahnya jika ada yang tahu.

Terjadi di pihak kita setelah meningkatkan ke Fresco 2.1.0

Saya memperbaikinya dengan melakukan perubahan berikut:

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

Setelah perubahan ini, Fresco akan menggunakan pemuat asli daripada soLoader untuk memuat pustaka asli apa pun.

Anda juga harus menambahkan exclude group: 'com.facebook.fresco', module: 'soloader' , lihat rilis 2.1.0 untuk detail lebih lanjut:

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

Saya telah pindah ke Fresco dari Picasso baru-baru ini dan baru saja meluncurkan aplikasi yang diperbarui di Playstore. Sekarang pada hari pertama saya melihat kesalahan ini di aplikasi saya. Kecelakaan itu terlihat di android versi 7.1.2 di perangkat Trend

Screenshot (158)

Apakah ada solusi kerja yang tersedia sekarang?

Solusi potensial:

  • Gunakan versi Fresco terbaru. SoLoader terus diperbarui dan masalah dengan perangkat tertentu diperbaiki. Atau bantu kami untuk mencari tahu mengapa ini terjadi pada perangkat Anda dan berkontribusi pada SoLoader.
  • Gunakan pemuat pustaka asli sistem alih-alih SoLoader atau implementasi Anda sendiri https://github.com/facebook/fresco/issues/2049#issuecomment -615255009
  • Gunakan Fresco khusus Java tanpa kode asli, lihat https://github.com/facebook/fresco/releases/tag/v2.1.0 (ini mungkin paling mirip dengan Picasso karena itu juga tidak menggunakan kode asli untuk peningkatan kinerja).

@oprisnik Saya mencoba 3 solusi di atas ditingkatkan ke 2.2.0 dan menguji aplikasi di firebase tetapi selama pengujian saya mendapatkan kesalahan ini

java.lang.RuntimeException: Tidak dapat membuat aplikasi com.example.xyz.MyApplication: java.lang.RuntimeException: Penyiapan kode asli salah, refleksi gagal.

hanya di perangkat yang menjalankan API 19.

saya telah menggunakan

` 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 yang diinisialisasi menggunakan

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

Jejak tumpukan penuh adalah

java.lang.RuntimeException: Tidak dapat membuat aplikasi com.example.xyz.MyApplication: java.lang.RuntimeException: Penyiapan kode asli salah, refleksi gagal.
PENGECUALIAN FATAL: utama
Proses: com.example.xyz, PID: 29863
java.lang.RuntimeException: Tidak dapat membuat aplikasi com.example.xyz.MyApplication: java.lang.RuntimeException: Penyiapan kode asli salah, refleksi gagal.
di android.app.ActivityThread.handleBindApplication(ActivityThread.java:4423)
di android.app.ActivityThread.access$1500(ActivityThread.java:139)
di android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
di android.os.Handler.dispatchMessage(Handler.java:102)
di android.os.Looper.loop(Looper.java:136)
di android.app.ActivityThread.main(ActivityThread.java:5097)
di java.lang.reflect.Method.invokeNative(Metode Asli)
di java.lang.reflect.Method.invoke(Method.java:515)
di com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
di com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
di dalvik.system.NativeStart.main(Metode Asli)
Disebabkan oleh: java.lang.RuntimeException: Penyiapan kode asli salah, refleksi gagal.
di com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder(PlatformDecoderFactory.java:51)
di com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformDecoder(ImagePipelineFactory.java:312)
di com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformBitmapFactory(ImagePipelineFactory.java:304)
di com.facebook.imagepipeline.core.ImagePipelineFactory.getAnimatedFactory(ImagePipelineFactory.java:164)
di com.facebook.imagepipeline.core.ImagePipelineFactory.getImageDecoder(ImagePipelineFactory.java:227)
di com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerFactory(ImagePipelineFactory.java:327)
di com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerSequenceFactory(ImagePipelineFactory.java:360)
di com.facebook.imagepipeline.core.ImagePipelineFactory.getImagePipeline(ImagePipelineFactory.java:282)
di com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:52)
di com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:43)
di com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:36)
di com.facebook.drawee.backends.pipeline.Fresco.initializeDrawee(Fresco.java:121)
di com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:110)
di com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:54)
di com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:46)
di com.example.xyz.MyApplication.onCreate(Aplikasi Saya.java:26)
di android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1030)
di android.app.ActivityThread.handleBindApplication(ActivityThread.java:4420)
... 10 lainnya
Disebabkan oleh: java.lang.ClassNotFoundException: com.facebook.imagepipeline.platform.KitKatPurgeableDecoder
di java.lang.Class.classForName(Metode Asli)
di java.lang.Class.forName(Class.java:251)
di java.lang.Class.forName(Class.java:216)
di com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder(PlatformDecoderFactory.java:44)
... 27 lainnya
Disebabkan oleh: java.lang.NoClassDefFoundError: com/facebook/imagepipeline/platform/KitKatPurgeableDecoder
... 31 lainnya
Disebabkan oleh: java.lang.ClassNotFoundException: Tidak menemukan kelas "com.facebook.imagepipeline.platform.KitKatPurgeableDecoder" di jalur: DexPathList[[file zip "/data/app/com.example.xyz-1.apk", zip file "/data/data/com.example.xyz/code_cache/secondary-dexes/com.example.xyz-1.apk.classes2.zip", file 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]]
di dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
di java.lang.ClassLoader.loadClass(ClassLoader.java:497)
di java.lang.ClassLoader.loadClass(ClassLoader.java:457)
... 31 lainnya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat