ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 1.8.0, Crashlytic ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΡΡΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
.
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)
Π― Ρ
ΠΎΡΡ Π·Π½Π°ΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ 1.8.1 ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈΠ»ΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ compile 'com.facebook.soloader:soloader:0.1.0+'
Π² build.gradle
compile 'com.facebook.fresco:fresco:1.8.0'
compile 'com.facebook.fresco:animated-gif:1.8.10'
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π²Π°ΡΠ° ΡΠ±ΠΎΡΠΊΠ°? ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ABI-ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅? http://frescolib.org/docs/shipping.html
@oprisnik
ΠΌΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ
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
}
}
ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ 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.** { *;}
Π― Π½Π΅ Π·Π½Π°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° OPPO - ΠΠ‘: Android 5.1.1 ΠΈ Π΄ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 1.8.0, ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠΈ
ΠΡΠΈΠ²Π΅Ρ, @hsandyque , Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ soloader
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Fresco, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 1.8.0. Π― Π±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ 1.8.1, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ°Ρ ΡΠ°ΠΉΠ» build.gradle Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ°ΠΉΠ» proguard-fresco.pro
ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΡΠ»ΠΊΠ΅, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ @oprisnik .
ΠΠ»Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ: Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π»ΠΈ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° _ ΡΠΎΠ»ΡΠΊΠΎ_ Π½Π° ΡΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅? ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ adb logcat
ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ?
ΠΡΠΈΠ²Π΅Ρ @lambdapioneer!
ΠΠ»Ρ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ: ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅? ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΡΠ²ΠΎΠ΄ adb logcat, ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ?
ΠΠ°, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
OPPO Android 5.1.1 (R7sfg / R7g / A51fa)
Π Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ - Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΡΠΊΠΈ
1.txt
2.txt
ΠΡΠΈΠ²Π΅Ρ, @hsandyque , ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°ΠΌΠΈ Oppo, ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠΌ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ OPPO, ΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π»ΡΡΡΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅: /
(a) ΠΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π»ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΅ΡΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ? (ΡΡΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡ ΠΌΠ΅Π½Ρ ΠΊ ΠΎΡΠ»Π°Π΄ΠΊΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²ΠΎΠ·ΡΠΌΡ Π² ΡΡΠΊΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ OPPO)
(b) ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ unzip -l your_release.apk | grep lib/
Π² ΡΠ²ΠΎΠ΅ΠΌ Π²ΡΠΏΡΡΠΊΠ΅ APK? ΠΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ.
ΠΡΠΈΠ²Π΅Ρ @lambdapioneer!
Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° OPPO (Android 5.1.1), ΠΎΠ± ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Crashlytics. Π― Π½Π΅ Π·Π½Π°Ρ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ-Π²ΠΈΡΡΠΈΠ½Π΅.
Π ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅
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
ΠΡΠΈΠ²Π΅Ρ @lambdapioneer!
Π±ΠΎΠ»ΡΡΠ΅ ΠΆΡΡΠ½Π°Π»Π°
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)
ΠΡΠΈΠ²Π΅Ρ @oprisnik
Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ?
java.lang.UnsatisfiedLinkError: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ DSO Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libimagepipeline.so
Π² com.facebook.soloader.jb (SourceFile: 522)
Π² com.facebook.soloader.ja (SourceFile: 420)
Π² com.facebook.soloader.ja (SourceFile: 370)
Π² com.facebook.soloader.ja (SourceFile: 335)
Π² com.facebook.imagepipeline.nativecode.aa (SourceFile: 42)
Π½Π° com.facebook.imagepipeline.memory.NativeMemoryChunk.
Π½Π° com.facebook.imagepipeline.memory.li (SourceFile: 58)
Π² com.facebook.imagepipeline.memory.lb (SourceFile: 20)
Π½Π° com.facebook.imagepipeline.memory.aa (SourceFile: 257)
Π½Π° com.facebook.imagepipeline.memory.o.
Π² com.facebook.imagepipeline.memory.nb (SourceFile: 98)
Π½Π° com.facebook.imagepipeline.memory.na (SourceFile: 26)
Π½Π° com.facebook.imagepipeline.producers.za (SourceFile: 89)
Π² com.facebook.imagepipeline.producers.zb (SourceFile: 101)
Π½Π° com.facebook.imagepipeline.producers.aa.a (SourceFile: 34)
Π² com.facebook.imagepipeline.producers.z $ 1.d (SourceFile: 54)
Π² com.facebook.imagepipeline.producers.z $ 1.c (SourceFile: 50)
Π½Π° com.facebook.common.berun (SourceFile: 45)
Π² java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
Π² java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
Π² com.facebook.imagepipeline.dk $ 1.run (SourceFile: 53)
Π² java.lang.Thread.run (Thread.java:818)
@hsandyque
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΈΠ»ΡΡΡΡ ABI (ΡΠΈΠΏΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°) Π² ΡΠ°ΠΉΠ»Π°Ρ Gradle Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
@erikandre
Π― Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΈΠ»ΡΡΡΡ ABI Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ gradle ΠΈ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ΅
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ 1.8.1. Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ VIVO X7 (Android 5.1.1, arm64-v8a).
java.lang.UnsatisfiedLinkError
com.facebook.imagepipeline.memory.NativeMemoryChunk
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.
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)
java.lang.UnsatisfiedLinkError
Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ DSO Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libimagepipeline.so
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.
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.
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. Π²ΡΠ·ΠΎΠ² (BufferedDiskCache.java:182)
16 com.facebook.imagepipeline.cache.BufferedDiskCache $ 2. Π²ΡΠ·ΠΎΠ² (BufferedDiskCache.java:166)
17 Π±ΠΎΠ»ΡΠΎΠ². ΠΠ°Π΄Π°ΡΠ° $ 4. Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ (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)
ΠΡΠ±ΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅? ΠΡΠΎ ΠΌΠΎΠΉ ΠΆΡΡΠ½Π°Π»
ΠΠ΅ΡΡΡΡΠ°Π½ΠΈΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: java.lang.UnsatisfiedLinkError: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ DSO Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libimagepipeline.so
Π² com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:522)
Π² com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:420)
Π² com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:370)
Π² com.facebook.soloader.SoLoader.loadLibrary (SoLoader.java:335)
Π² com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load (ImagePipelineNativeLoader.java:42)
Π½Π° com.facebook.imagepipeline.memory.NativeMemoryChunk.
Π² com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:58)
Π² com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc (NativeMemoryChunkPool.java:20)
Π² com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
Π² com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.
Π² com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream (NativePooledByteBufferFactory.java:141)
Π² com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newOutputStream (NativePooledByteBufferFactory.java:26)
Π² com.facebook.imagepipeline.producers.NetworkFetchProducer.onResponse (NetworkFetchProducer.java:90)
Π² com.facebook.imagepipeline.producers.NetworkFetchProducer $ 1.onResponse (NetworkFetchProducer.java:70)
Π² com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher $ 2.onResponse (OkHttpNetworkFetcher.java:180)
Π² okhttp3.RealCall $ AsyncCall.execute (RealCall.java:153)
Π² okhttp3.internal.NamedRunnable.run (NamedRunnable.java:32)
Π² java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
Π² java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587)
Π² java.lang.Thread.run (Thread.java:818)
@ wangshuwen1107 @ csbz17027 @ignaciogs
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Facebook Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ Π½Π°ΡΠ΅Π» ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
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
Π ΠΆΡΡΠ½Π°Π»Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² 32-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (Ρ Π½Π΅ Π·Π½Π°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°), Π½ΠΎ libimagepipeline.so ΡΠ²Π»ΡΠ΅ΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΈΠ»ΡΡΡ api, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ "arm64-v8a"
defaultConfig {
...
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64"
}
}
ΠΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΅ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΆΠ΄Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
@hsandyque Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ, Π²Π°Ρ ΠΎΡΠ²Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ρ Π½Π΅ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡοΌ
@oprisnik @erikandre @lambdapioneer
Π£ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
@hsandyque, Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΏΡΡΠ°ΡΡ Ρ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ΠΌ 32-Π±ΠΈΡΠ½ΡΡ ΠΈ 64-Π±ΠΈΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ?
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π±Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ abiFilters
:
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"}
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π΄Π°ΠΆΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ mips
, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ Π½Π°ΡΠ΅Π»ΠΈΠ²Π°Π΅ΡΠ΅ΡΡ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π²Π΅ΡΡΠΈΠΈ 1.9.0.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
Π Π°Π±ΠΎΡΠ°Π» Ρ ΠΌΠ΅Π½Ρ. ΠΠΎ, ΡΠΈΡΠ°Ρ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Β«ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅Β» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅?
Π£ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ Π½Π΅Π΅ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎ ΡΠ±ΠΎΡΡ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, OOM fresco) ΠΈΠ· ΡΡΠ΅ΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠΉ, ΠΏΠΎΡΠ° ΠΏΠΎΠΏΡΠΎΡΠ°ΡΡΡΡ!
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
ndk {
abiFilters "armeabi,armeabi-v7a"
}
ΠΈ
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'
ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΡΠ°Ρ.
ΠΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° v1.9.0.
ΠΡΠ΅ Π΅ΡΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π² 1.9.0 Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ abis Β«armeabiΒ», Β«armeabi-v7aΒ», Β«x86Β»
ΠΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° v1.9.0.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ. ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² HTC One E9PLUS dual sim ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ android 5.0.2.
ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅ΡΡΡΡΠ°Π½ΠΈΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: java.lang.UnsatisfiedLinkError
Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ DSO Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libimagepipeline.so
ΠΠΠΠΠΠΠΠΠΠ: Π΄Π»Ρ ΡΠ΅Ρ , Ρ ΠΊΠΎΠ³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Ρ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅ Fresco , ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅ΡΠ°Π΅Ρ Π½Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π’Π°ΠΊΠΆΠ΅ Π²ΠΈΠΆΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Fresco Π²Π΅ΡΡΠΈΠΈ 1.9.0 ΠΈ ΡΠΈΠ»ΡΡΡΠΎΠ² ABI Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° APK:
ndk {
abiFilters "armeabi-v7a", "x86"
}
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ°Π»Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Ρ Π½Π°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Fresco Ρ 1.5.0 Π΄ΠΎ 1.9.0. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π»ΠΎ ΠΎΡΠΊΠ°Π· ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ReLinker ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° proguard-fresco.pro.
ΠΡΠΈΠ²Π΅Ρ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π° ΠΈΠ»ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°? ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΠ°, Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠ°ΠΊ Β«ΠΎΡΠΈΠ±ΠΊΠ°Β» ΠΈΠ»ΠΈ Β«ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅Β», ΠΈ Ρ ΠΎΡΡΠ°Π²Π»Ρ Π΅Π΅ ΠΎΡΠΊΡΡΡΠΎΠΉ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄.
Π£Π΄Π°Ρ. ΠΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠΎΡ ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ 1.5.0 Π΄ΠΎ 1.9.0, ΠΈ ΠΌΠ½Π΅ Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΌΠ½Π΅.
@jmbusby Π²Ρ Π½Π°ΡΠ΅Π»ΠΈΠ²Π°Π΅ΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠΊΡ v7a. ΠΠΎΠ³ΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π±ΡΡΡ armv6 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ armv5? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ https://forum.xda-developers.com/showthread.php?t=1596800, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ² ZTE Ρ v6.
@oprisnik Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½ Asus Zenfone 3 Max Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ARM v8. Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½ ZTE - ΡΡΠΎ Blade V7, ΡΠ°ΠΊΠΆΠ΅ Ρ ARM v8.
Π― Π²ΠΈΠΆΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° 1.10 Ρ 1.8.1
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π²ΡΠ½ΡΠΆΠ΄Π°ΡΡ Π½Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ armeabi ΠΈ x86 ... ΠΈ, Π³Π»ΡΠ΄Ρ Π½Π° ΡΠ°ΠΉΠ» aar Imagepipeline Π΄Π»Ρ v-1.10, Π²Π°ΡΠΈΠ°Π½Ρ armeabi ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ? ΠΡ ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ΡΡ ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ?
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΉΠ»Ρ .so ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² Π²Π΅ΡΡΠΈΠΈ 1.9.
ΠΡΠ±ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΡΠΈΠ²Π΅Ρ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π° ΠΈΠ»ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°? ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΠ°, Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠ°ΠΊ Β«ΠΎΡΠΈΠ±ΠΊΠ°Β» ΠΈΠ»ΠΈ Β«ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅Β», ΠΈ Ρ ΠΎΡΡΠ°Π²Π»Ρ Π΅Π΅ ΠΎΡΠΊΡΡΡΠΎΠΉ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ
ΠΡΠΈΠ²Π΅Ρ, ΡΠ΅Π±ΡΡΠ°, ΠΏΡΠΈΡΡΠ½ΠΎ ΡΠ½ΠΎΠ²Π° Π²Π°Ρ Π²ΠΈΠ΄Π΅ΡΡ.
@lambdapioneer , @oprisnik ΠΎΠ± ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π»ΠΎΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡΡ , Π½Π°ΡΠΈΠ½Π°Ρ Ρ Fresco 0.1. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΎΠΉΡΡΠ², Π·Π°Π³ΡΡΠΆΠ°ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ APK) Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ APK ΡΡΠ΅Π±ΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π²Π΅ΡΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ABI. ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΈ ΡΠΈΠΏΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ hockeyapp, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠΏΡΡΠΊΠ°ΡΡ Π³Π»Π°Π·Π°. ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΎΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Glide, ΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ.
NativePooledByteBuffer Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ°ΠΊ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ API> = 21, Π½Π° ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°ΡΠ΅Π»Π΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Dalvik ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΏΠ°Π» Π΄ΠΎ 10%). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ Java Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΡΠΌΠΎΠ³Ρ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅, Π½ΠΎ Ρ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, ΡΡΠΎ Π²Ρ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» ΠΊΡΠΎ-ΡΠΎ Π΅ΡΠ΅ ΠΈΠ· FB :)
ΠΡΠΈΠ²Π΅Ρ, @tyronen! ΠΠ°Π²Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈΡΡ' :)
Π₯ΠΎΡΠΎΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, Ρ Π½Π°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΅ΡΡΡ ΠΊΡΠΎ-ΡΠΎ, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Π΄ ΡΡΠΈΠΌ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ (Java-Π²Π΅ΡΡΠΈΡ NativePooledByteBuffer ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²) - ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ Π΄ΡΡΠ³ΠΈΡ
ΠΎΡΠΊΡΡΡΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΈΠ΄Π΅ΠΉ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠΈΡ
ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ½ΠΎΠ²Π° Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄.
Π£ Π½Π°Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Π² Drawee, ΡΠ°ΠΊ ΠΈ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΊΠΎΡΠΎ Π²ΡΠ΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ.
Samsung Galaxy S9 Android 8 ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π― ΡΠΎΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ OPPO A51
, ΠΎΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Fresco v1.8.1
Π½ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² v0.12.0
Π’Π°ΠΊ ΡΡΠΎ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ? ΠΡΠ»Π΅ΡΠ°Π΅Ρ Π½Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 1.8 ...
api 'com.facebook. ΡΠ²Π΅ΠΆΠΈΠΉ: ΡΠ²Π΅ΠΆΠΈΠΉ : 1.10.0 '
πππ
ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅?
Π’Π°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ
ΠΡΠΏΡΡΠΊ ΠΏΠΎΡΡΠΈ 8-ΠΌΠ΅ΡΡΡΠ½ΠΎΠΉ Π΄Π°Π²Π½ΠΎΡΡΠΈ.
ΠΡΠ±ΠΎΠ΅ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅? Π Π°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΠΎΠ°Π΄Π΅ΡΠ°?
ΠΡΠΈΠ²Π΅Ρ Π²ΡΠ΅ΠΌ, Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π― Ρ ΠΎΡΡ ΡΠΎΠΎΠ±ΡΠΈΡΡ Π²Π°ΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Ρ ΠΎ (ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ) ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ. ΠΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Fresco Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΡΠΌ., ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ImagePipelineExperiments # disableNativeCode ). ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³ΠΎΡΠΎΠ² Ρ Π²ΡΠΏΡΡΠΊΠΎΠΌ v1.11 ΠΈΠ»ΠΈ v1.12. ΠΡΠ΅ΡΡΠΈΠΆΠ½ΠΎΡΡΡ @MikaelMorales
Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΠΎΠΏΡΠΎΡΠ°Ρ Π½Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ΄Π΅ΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° build.gradle Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ, Π½ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠ΅ΡΡΠ½ΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΠΌ ΠΈ Π²ΡΠ΅ΠΌ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅:
ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΌ ΠΎΡΠ΅Π½Ρ Π½ΡΠΆΠ½Π° Π²Π°ΡΠ° ΠΏΠΎΠΌΠΎΡΡ! Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ΅Π³ "ΠΎΡΠΈΠ±ΠΊΠ°", ΡΡΠΎΠ±Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ Π±ΠΎΡ ΠΌΠΎΠ»ΡΠ°Π».
@ ch4ndu , Π²Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π² armeabi
ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Fresco. ΠΠ½ Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½ Π² NDK r17 (https://developer.android.com/ndk/guides/abis)
W / System.err: java.lang.UnsatisfiedLinkError: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ DSO Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libimagepipeline.so
ΠΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ
ndk {abiFilters "armeabi"}
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 'com.facebook. ΡΡΠ΅ΡΠΊΠ°: ΡΡΠ΅ΡΠΊΠ° : 1.11.0 '
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 'com.facebook. ΡΡΠ΅ΡΠΊΠ°: animated-gif : 1.11.0 '
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 'com.facebook. ΡΡΠ΅ΡΠΊΠ°: animated-webp : 1.11.0 '
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 'com.facebook. ΡΡΠ΅ΡΠΊΠ°: webpsupport : 1.11.0 '
ΠΡΠΈΠ²Π΅Ρ, Ρ ΠΌΠΎΠ³ Π±Ρ Π½Π°ΠΉΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Fresco 1.11 Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
GIF-ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ±Π° ΠΎΠ½ΠΈ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ APK, Π½ΠΎ Π½Π΅ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· Android Studio ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ bundletool Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ( build-apks
) ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ( install-apks
) APK. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ GIF-ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ, Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΡ
, Π° ΠΏΠΎΠΏΡΡΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ±ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ( couldn't find DSO to load: libimagepipeline.so
).
ΠΡ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ .experiment().setNativeCodeDisabled(true)
Π² ImagePipelineConfig Fresco, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ GIF Π²ΡΠ»Π΅ΡΠ°Π΅Ρ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ( couldn't find DSO to load: libgifimage.so
). ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, Π½Π°ΠΌ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ".experiment ()".
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Android Gradle Plugin 3.2.1, Android Studio 3.3 beta 4 ΠΈ bundletool 0.7.1. Π’Π΅ΡΡΠΈΡΡΡ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ Android 8.1.0.
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Fresco Ρ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ? ΠΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ Π½Π°ΠΌ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΡΠΎ ΡΠ±ΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π³ΠΈΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°:
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)
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ±ΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°. Π‘Π»Π΅Π΄Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ( couldn't find DSO to load: libimagepipeline.so
) ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ GIF, Π½ΠΎ Π±Π΅Π· ΡΠ°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
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)
ΠΡΠΈΠ²Π΅Ρ Π΅ΡΠ΅ ΡΠ°Π·,
Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ-Π²ΠΈΡΡΠΈΠ½ΠΎΠΉ, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² ΠΌΠ΅ΡΠΊΡ v1.11.0, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ. Π― ΠΏΡΡΠ°Π»ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ https://frescolib.org/docs/building-from-source.html, Π½ΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π»ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΎ ΠΏΠ°ΠΏΠΊΠ΅ android-ndk / r10e, Π½ΠΎ Π΅Π΅ Π½Π΅Ρ Π² ΠΌΠΎΠ΅ΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ - r18b).
ΠΡΠ»ΠΈ Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-Π²ΠΈΡΡΠΈΠ½Ρ ΠΈΠ· Android Studio, Ρ ΠΏΠΎΠ»ΡΡΡ Process 'command '<mySdkPath>/ndk-bundle/ndk-build'' finished with non-zero exit value 2
.
ΠΠ°ΠΏΡΡΡΠΈΠ² ./gradlew build
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ:
> 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.
Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ APP_PLATFORM Π½Π° ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈ ΡΡΡΠΎΠΊΠ° ΠΎΠ± ΡΡΠΎΠΌ ΠΈΡΡΠ΅Π·Π»Π°, Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ° ΠΆΠ΅.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Ρ Android Studio 3.3 RC 1.
ΠΠΎΠΌΠΎΠ³ΠΈ ΠΌΠ½Π΅!
java.lang.UnsatisfiedLinkError: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ DSO Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libimagepipeline.so ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅: dlopen failed: "/data/data/com.vipabc.vipmobilejr.phone/lib-main/libimagepipeline.so" Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ 64-Π±ΠΈΡΠ½ΡΠΉ 32-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ
Π£ ΠΌΠ΅Π½Ρ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ okhttp.
ΠΠΎ Π±Π΅Π· Π½Π΅Π³ΠΎ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΡΠ½Π΅Ρ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ²Π΅Ρ Π²ΡΠ΅ΠΌ, Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π― Ρ ΠΎΡΡ ΡΠΎΠΎΠ±ΡΠΈΡΡ Π²Π°ΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Ρ ΠΎ (ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ) ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ. ΠΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Fresco Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΡΠΌ., ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ImagePipelineExperiments # disableNativeCode ). ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³ΠΎΡΠΎΠ² Ρ Π²ΡΠΏΡΡΠΊΠΎΠΌ v1.11 ΠΈΠ»ΠΈ v1.12. ΠΡΠ΅ΡΡΠΈΠΆΠ½ΠΎΡΡΡ @MikaelMorales
Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΠΎΠΏΡΠΎΡΠ°Ρ Π½Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ΄Π΅ΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° build.gradle Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ, Π½ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠ΅ΡΡΠ½ΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΠΌ ΠΈ Π²ΡΠ΅ΠΌ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅:
- ΠΡΠΎΠ²Π΅ΡΠΊΠ°, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΎΠ½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ-Π²ΠΈΡΡΠΈΠ½Ρ
- ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΎΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°ΠΉΡΠ΅, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½ΠΎ Π»ΠΎΠΌΠ°Π΅ΡΡΡ.
ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΌ ΠΎΡΠ΅Π½Ρ Π½ΡΠΆΠ½Π° Π²Π°ΡΠ° ΠΏΠΎΠΌΠΎΡΡ! Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ΅Π³ "ΠΎΡΠΈΠ±ΠΊΠ°", ΡΡΠΎΠ±Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ Π±ΠΎΡ ΠΌΠΎΠ»ΡΠ°Π».
@ ch4ndu , Π²Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π²
armeabi
ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Fresco. ΠΠ½ Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½ Π² NDK r17 (https://developer.android.com/ndk/guides/abis)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΊΡΠΏΠΈΡΡ OPPO r7 Ρ Android 5.1.1, ΡΡΠΎΠ±Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ okhttp, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π’Π°ΠΊ Π΅ΡΡΡ Π»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ? Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π° ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΠ»Π³ΠΈΠΉ ΡΡΠΎΠΊ ΡΠ°ΠΊΠΎΠΉ Π±Π°Π³ - Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΠΠ’.
Π― Π½Π°ΡΠ΅Π» ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ ... ΠΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎ Π² ΡΠ΅Π³ Android Π² build.gradle
packagingOptions {
exclude "lib/arm64-v8a/libimagepipeline.so"
exclude "lib/arm64-v8a/libnative-imagetranscoder.so"
}
ΠΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ. Π API Google Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Ρ 2017 Π³ΠΎΠ΄Π°. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ 2000 ΡΠ±ΠΎΡΠΌ Π² Π΄Π΅Π½Ρ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΡΠΈΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ°ΠΊΠΈΠΌΠΈ Π²Π°ΠΆΠ½ΡΠΌΠΈ, ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ, ΠΊΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎ Π·Π° Π½Π΅Π΄Π΅Π»Ρ, - Twitter.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ .. ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Samsung (S8 ΠΈ Xcover4) Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ±ΠΎΠΈ.
ΠΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ fresco 1.7.1 Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΈ ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² simpledrawview.
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΊΠΎΠ»ΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ 1.7.1 ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»Π° ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ - ΡΡΠΎ Π±ΡΠ»ΠΎ Π² 1.12.1. ΠΠΎ Π² 1.12.1 Π΅ΡΡΡ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° / ΡΠ±ΠΎΠΉ).
PS: Π’ΠΎΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΠΈΠΊΠ°ΡΡΠΎ, Π½ΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ .. (Π΄Π°ΠΆΠ΅ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ 2.7).
(ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ Fresco ΠΈ Π³ΠΎΠ²ΠΎΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ)
ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Fresco 1.11 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΡΠΈΠΌΠ΅Ρ okhttp):
ImagePipelineConfig config =
OkHttpImagePipelineConfigFactory.newBuilder(context, okHttpClient)
.setMemoryChunkType(MemoryChunkType.BUFFER_MEMORY)
.build()
Fresco.initialize(context, config);
Π― Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android 4.x ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅ Π ΠΠΠ£ ΠΌΠ΅Π½Π΅Π΅ 1 ΠΠ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ°Π½ΡΠΊΠΎΠ΄Π΅Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΡ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° gradle:
implementation('com.facebook.fresco:fresco:1.12.1') {
exclude module: 'nativeimagefilters'
exclude module: 'nativeimagetranscoder'
}
ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π΅Π΄Π΅Π»Ρ ΠΈΠ»ΠΈ Π΄Π²Π΅, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. @oprisnik , ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ? ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΡΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ libimagepipeline.so ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, Π½ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π²Π°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅:
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ('com.facebook.fresco: fresco: 1.12.1') ββ{
ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ: 'nativeimagefilters'
ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ: 'nativeimagetranscoder'
}
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ:
ΠΡΠ·Π²Π°Π½ΠΎ java.lang.UnsatisfiedLinkError
Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ DSO Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libstatic-webp.so
com.facebook.soloader.SoLoader.initSoSources (Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
com.facebook.soloader.SoLoader.init (Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
com.facebook.soloader.SoLoader.init (Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
com.facebook.soloader.SoLoader.init (Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
com.facebook.imagepipeline.nativecode.StaticWebpNativeLoader.ensure (Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
com.facebook.animated.webp.WebPImage.create (Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
@galrom ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ static-webp (ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ webpsupport). ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Android 4.2.0 ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅. ΠΠ°ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΡ webp - Π΄Π»Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ webp Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Android 4.0 Π±Π΅Π· static-webp.
ΠΠ°ΡΠΈ dependency graph
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΠΎΠ² static-webp module
ΠΈ ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ ΡΡΠΎΡ ΡΠ±ΠΎΠΉ
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ 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'
ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΎ, ΡΡΠΎ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Memrise) ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ ΡΡΠΎΡ ΡΠ±ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π²ΡΡΠ΅. ΠΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ static-webp, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π½Π°Ρ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ @tyronen. ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ> 4x.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ 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'
Π― Π²ΡΡΡΠ΅ΡΠ°Π» ΡΡΠΎ ΡΠΎΠΆΠ΅ Π² ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ, 1.13.0 ΠΡΠ°ΠΊ, Ρ Ρ
ΠΎΡΠ΅Π» Π±Ρ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½Π΅ ΡΠ΄Π°Π»ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ arm64. @oprisnik
ΠΠΎΡΠ΅ΠΌΡ Facebook Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? ΠΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½ΠΎ ΠΎΠ½ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΎΡΡΡ ΠΎΡΡΠ΅Ρ. Π’Π°ΠΊΠ°Ρ ΠΏΠ»ΠΎΡ Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Facebook.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ 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'
Π― Π²ΡΡΡΠ΅ΡΠ°Π» ΡΡΠΎ ΡΠΎΠΆΠ΅ Π² ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ, 1.13.0 ΠΡΠ°ΠΊ, Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½Π΅ ΡΠ΄Π°Π»ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ arm64. @oprisnik
ΠΡ Π½Π°ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅?
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅? https://github.com/facebook/fresco/issues/2049#issuecomment -462880309
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅? # 2049 (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ)
Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ±ΠΎΠΉ.
ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° οΌ Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ com.facebook. ΡΡΠ΅ΡΠΊΠ°: ΡΡΠ΅ΡΠΊΠ° : 2.0.0 '
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ com.facebook. ΡΡΠ΅ΡΠΊΠ°: ΡΡΠ΅ΡΠΊΠ° : 2.0.0 '.
Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΠΌΠΎΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ HUAWEI HORNOR 8.
ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅
ndk {abiFilters "armeabi", "armeabi-v7a", "x86"}
Π² defaultConfig ΠΌΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°.
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈ Π·Π΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ 6 ΠΈ Π²ΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π±ΡΠ΅Π½Π΄ΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ².
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ com.facebook. ΡΡΠ΅ΡΠΊΠ°: ΡΡΠ΅ΡΠΊΠ° : 2.0.0 '.
Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΠΌΠΎΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ HUAWEI HORNOR 8.
ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅
ndk {abiFilters "armeabi", "armeabi-v7a", "x86"}
Π² defaultConfig ΠΌΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°.
@glovebx ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ 32-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Ρ Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Google Π΄Π»Ρ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for- 64-bit.html
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΡΠ», Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 1.08.2019.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π°.
https://github.com/facebook/fresco/issues/2381#issuecomment -516825599
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π±Π΅
@ShawnDongAi, ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΡΠΈΠΌ π! ΠΠ»Ρ Π½Π°Ρ ΡΠΆΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ·Π΄Π½ΠΎ :) ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ Π² Π΄ΡΡΠ³ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ·-Π·Π° ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΡΠ΅ΡΠΊΠ°ΠΌΠΈ.
https://github.com/facebook/SoLoader/pull/45 Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π΄Π΅ΡΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ SoLoader Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ RN 0.60.5.
ΠΡΠ»ΠΈ Π²Π°ΠΌ, ΡΠ΅Π±ΡΡΠ°, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΈΠ· ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, Π²Π½Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
PackageOptions {
ΠΈΡΠΊΠ»ΡΡΠΈΡΡ '/lib/arm64-v8a/libc++_shared.so' (ΠΈΡΠΊΠ»ΡΡΠΈΡΡ '/lib/arm64-v8a/error_causing_library.so')
ΠΈΡΠΊΠ»ΡΡΠΈΡΡ '/lib/x86_64/libc++_shared.so' (ΠΈΡΠΊΠ»ΡΡΠΈΡΡ '/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')
}
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ±ΠΎΠΉ, Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π² ΡΠ΅ΡΡΠΎΠ²ΡΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡ Firebase, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅. ΠΠ½ ΡΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ, ΠΊΠ°ΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ
@Balajipss Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ 64-Π±ΠΈΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π²ΡΠ·ΡΠ²Π°Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Google: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit .html ?
@waseefakhtar ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
PackageOptions {
ΠΈΡΠΊΠ»ΡΡΠΈΡΡ '/lib/arm64-v8a/libc++_shared.so'
ΠΈΡΠΊΠ»ΡΡΠΈΡΡ '/lib/x86_64/libc++_shared.so'
pickFirst '/lib/x86/libc++_shared.so'
pickFirst '/lib/armeabi-v7a/libc++_shared.so'
}
ΠΡΡΡ Π»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? ΠΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΡΡΠΈΠΌ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°, Π½ΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΡΠ±ΠΎΡΡ .
@juanimoli Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ² Oppo ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ OS 5, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
@waseefakhtar ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Β«armeabi-v7aΒ» Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ json-ΡΠ°ΠΉΠ»Π° ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² bundletool (Ρ ΠΏΠΎΠΌΠΎΡΡΡ AppBundle). Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΡΠ±ΠΎΠΉ.
ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² 2381 # issuecomment-516825599 Π±Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ abiFilters ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΡ .
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» fresco 1.13.0, ΠΈ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎ 2.0.0 Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΡΠ²ΠΎΠΉ Π½ΠΎΠ²ΡΠΉ apk, Ρ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» libimagepipeline.so Π² ΠΌΠΎΠ΅ΠΌ apk. ΠΠ°ΡΠ΅ΠΌ Ρ ΠΎΡΠΈΡΠ°Ρ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΎΠ·Π΄Π°Ρ Π½ΠΎΠ²ΡΠΉ APK. Π Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ libimagepipeline.so Π² ΠΌΠΎΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΌ apk . ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΠ΄ΠΈΠΈ Android!
Π― ΡΠ°ΠΊ ΡΠ΅ΡΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ!
defaultConfig {... ndk {abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64"}}
Π― ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡ Π΄ΠΎ AndroidX, Π° Π·Π°ΡΠ΅ΠΌ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ couldn't find DSO to load: libimagepipeline.so
, ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π² ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΡΡ .
ΠΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ, Π½ΠΎ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ-ΡΠΎ Ρ ΠΊΠ΅ΡΠ΅ΠΌ Gradle ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ. (Ρ ΠΎΡΡ ΠΊΠ΅Ρ Gradle ΠΎΡΠΈΡΠ΅Π½)
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ Π·Π½Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΏΡΠΈΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π½Π°Π΅Ρ.
Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π° Π½Π°ΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎ Fresco 2.1.0
Π― ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΠΎ, ΡΠ΄Π΅Π»Π°Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
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'
}
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Fresco Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, Π° Π½Π΅ soLoader Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π»ΡΠ±ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ exclude group: 'com.facebook.fresco', module: 'soloader'
, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌ. Π Π²ΡΠΏΡΡΠΊΠ΅ 2.1.0:
Π― Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° Fresco ΠΈΠ· Picasso ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΠ» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Playstore. Π‘Π΅ΠΉΡΠ°Ρ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΠΆΠ΅ Π΄Π΅Π½Ρ Ρ Π²ΠΈΠΆΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘Π±ΠΎΠΉ Π±ΡΠ» Π·Π°ΠΌΠ΅ΡΠ΅Π½ Π½Π° Android Π²Π΅ΡΡΠΈΠΈ 7.1.2 Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Trend
ΠΡΡΡ Π»ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅?
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
@oprisnik Π― ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» 3 Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄ΠΎ 2.2.0, ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² firebase, Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ
java.lang.RuntimeException: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ com.example.xyz.MyApplication: java.lang.RuntimeException: Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Ρ API 19.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»
` 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.initialize(
getApplicationContext(),
ImagePipelineConfig.newBuilder(getApplicationContext())
.setMemoryChunkType(MemoryChunkType.BUFFER_MEMORY)
.setImageTranscoderType(ImageTranscoderType.JAVA_TRANSCODER)
.experiment().setNativeCodeDisabled(true)
.build());`
ΠΠΎΠ»Π½Π°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ΅ΠΊΠ°
java.lang.RuntimeException: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ com.example.xyz.MyApplication: java.lang.RuntimeException: Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
FATAL EXCEPTION: Π³Π»Π°Π²Π½Π°Ρ
ΠΡΠΎΡΠ΅ΡΡ: com.example.xyz, PID: 29863
java.lang.RuntimeException: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ com.example.xyz.MyApplication: java.lang.RuntimeException: Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π² android.app.ActivityThread.handleBindApplication (ActivityThread.java:4423)
Π² android.app.ActivityThread.access $ 1500 (ActivityThread.java:139)
Π² android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1270)
Π² android.os.Handler.dispatchMessage (Handler.java:102)
Π² android.os.Looper.loop (Looper.java:136)
Π² android.app.ActivityThread.main (ActivityThread.java:5097)
Π² java.lang.reflect.Method.invokeNative (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄)
Π² java.lang.reflect.Method.invoke (Method.java:515)
Π² com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785)
Π² com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601)
Π² dalvik.system.NativeStart.main (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄)
ΠΡΠ·Π²Π°Π½ΠΎ: java.lang.RuntimeException: Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π² com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder (PlatformDecoderFactory.java:51)
Π² com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformDecoder (ImagePipelineFactory.java:312)
Π² com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformBitmapFactory (ImagePipelineFactory.java:304)
Π² com.facebook.imagepipeline.core.ImagePipelineFactory.getAnimatedFactory (ImagePipelineFactory.java:164)
Π² com.facebook.imagepipeline.core.ImagePipelineFactory.getImageDecoder (ImagePipelineFactory.java:227)
Π² com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerFactory (ImagePipelineFactory.java:327)
Π² com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerSequenceFactory (ImagePipelineFactory.java:360)
Π² com.facebook.imagepipeline.core.ImagePipelineFactory.getImagePipeline (ImagePipelineFactory.java:282)
Π² com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:52)
Π² com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:43)
Π² com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.(PipelineDraweeControllerBuilderSupplier.java:36)
Π½Π° com.facebook.drawee.backends.pipeline.Fresco.initializeDrawee (Fresco.java:121)
Π½Π° com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:110)
Π½Π° com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:54)
Π½Π° com.facebook.drawee.backends.pipeline.Fresco.initialize (Fresco.java:46)
Π² com.example.xyz.MyApplication.onCreate (MyApplication.java:26)
Π² android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1030)
Π² android.app.ActivityThread.handleBindApplication (ActivityThread.java:4420)
... Π΅ΡΠ΅ 10
ΠΡΠ·Π²Π°Π½ΠΎ: java.lang.ClassNotFoundException: com.facebook.imagepipeline.platform.KitKatPurgeableDecoder
Π² java.lang.Class.classForName (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄)
Π² java.lang.Class.forName (Class.java:251)
Π² java.lang.Class.forName (Class.java:216)
Π² com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder (PlatformDecoderFactory.java:44)
... Π΅ΡΠ΅ 27
ΠΡΠ·Π²Π°Π½ΠΎ: java.lang.NoClassDefFoundError: com / facebook / imagepipeline / platform / KitKatPurgeableDecoder
... Π΅ΡΠ΅ 31
ΠΡΠ·Π²Π°Π½ΠΎ: java.lang.ClassNotFoundException: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ ΠΊΠ»Π°ΡΡ Β«com.facebook.imagepipeline.platform.KitKatPurgeableDecoderΒ» ΠΏΠΎ ΠΏΡΡΠΈ: DexPathList [[zip-ΡΠ°ΠΉΠ» Β«/data/app/com.example.xyz-1.apkΒ», zip-ΡΠ°ΠΉΠ» "/data/data/com.example.xyz/code_cache/secondary-dexes/com.example.xyz-1.apk.classes2.zip", zip-ΡΠ°ΠΉΠ» "/data/data/com.example.xyz/code_cache /secondary-dexes/com.example.xyz-1.apk.classes3.zip"pting,nativeLibraryDirectories=[/data/app-lib/com.example.xyz-1, / vendor / lib, / system / lib]]
Π² dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
Π² java.lang.ClassLoader.loadClass (ClassLoader.java:497)
Π² java.lang.ClassLoader.loadClass (ClassLoader.java:457)
... Π΅ΡΠ΅ 31
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ 1.8.1. Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ 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)(NativePooledByteBufferOutputStream.java:51)
3 com.facebook.imagepipeline.memory.BasePool.get (BasePool.java:257)
4 com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.
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 Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: libimagepipeline.so
1 com.facebook.soloader.SoLoader.doLoadLibraryBySoName (SoLoader.java:522)
2 com.facebook.soloader.SoLoader.loadLibraryBySoName (SoLoader.java:420)(NativeMemoryChunk.java:33)(NativePooledByteBufferOutputStream.java:51)
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.
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.
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. Π²ΡΠ·ΠΎΠ² (BufferedDiskCache.java:182)
16 com.facebook.imagepipeline.cache.BufferedDiskCache $ 2. Π²ΡΠ·ΠΎΠ² (BufferedDiskCache.java:166)
17 Π±ΠΎΠ»ΡΠΎΠ². ΠΠ°Π΄Π°ΡΠ° $ 4. Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ (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)