Fresco: рдРрдк рдмрдВрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдлреНрд░реЗрд╕реНрдХреЛ "libimagepipeline.so" рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рджрд┐рд╕ре░ 2018  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/fresco

рд╡рд┐рд╡рд░рдг

рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп, рдЬрд┐рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдРрдк рдмрдВрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ "libimagepipeline.so" рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдкреНрд░рдЬрдирди

  1. рдПрдХ рдирдореВрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдлреНрд░реЗрд╕реНрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
  2. рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрдВрдбрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
  3. рдмрдВрдбрд▓ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
  4. рдмрдВрдбрд▓ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдкреАрдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
  5. рдЙрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  6. рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ

рд╕рдорд╛рдзрд╛рди

рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ minify, R8, рдпрд╛ Proguard рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдРрдк рдмрдВрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рднреА рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрд╛ред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдРрдк рдХреЗ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдлреНрд░реЗрд╕реНрдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╛рдЗрдирд░реА рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдПрдХ рдЕрд╕реНрдерд╛рдпреА, рд▓реЗрдХрд┐рди рдЖрджрд░реНрд╢ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреАрдХреЗ рдХреЛ abi рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЕрдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рдПрдкреАрдХреЗ рдХрд╛ рдЖрдХрд╛рд░ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

android {
    // Rest of your configuration here

    bundle {
        abi {
            enableSplit false
        }
    }
}

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА

  • рдлреНрд░реЗрд╕реНрдХреЛ рд╕рдВрд╕реНрдХрд░рдг: 1.10.0
  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг: рд╕реИрдорд╕рдВрдЧ SM-G955F, Android 8.0.0

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдлреНрд░реЗрд╕реНрдХреЛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реЛрд▓реЛрдбрд░ рд▓рд┐рдм рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ: facebook/soloader#26
рдпрд╣ рдлрд┐рдХреНрд╕ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рдРрдк рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рд╕реЛрд▓реЛрдбрд░ рд▓рд┐рдм рдХрд╛ рдкреИрдЪ рдХрд┐рдпрд╛ рд╣реБрдЖ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкреАрдЖрд░ рдХреЗ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

repositories {
    maven {
        url  "https://dl.bintray.com/nnesterov/maven" 
    }
}

compile('com.facebook.fresco:fresco:1.10.0') {
    exclude group: 'com.facebook.soloader', module: 'soloader'
}
compile("com.avito.android:patched-soloader:0.1.0")

рд╕рднреА 21 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ? #2049

рд╣рд╛рдБ, рдореЛрдЯреЗ рддреМрд░ рдкрд░ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдпрд╛ рд╕реЛрд▓реЛрдбрд░ рдореЗрдВ Android рдРрдк рдмрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдХрдореА рдФрд░
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ред

рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рд╣рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ
рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рди рдХреЗрд╡рд▓ рдмреНрд░рд╛рдВрдбреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

рдФрд░ рдлреНрд░реЗрд╕реНрдХреЛ рд╢рд┐рдкрд┐рдВрдЧ рдЧрд╛рдЗрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рдХреЛрдИ рдиреЛрдЯ рдирд╣реАрдВ рд╣реИ
Android рдРрдк рдмрдВрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢рд┐рдкрд┐рдВрдЧ, рдФрд░ рд╣рдо splits рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬрдм
рдЖрдк bundle рдХрд░рддреЗ рд╣реИрдВ рддреЛ splits рдХреБрдВрдЬреА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдордВрдЧрд▓рд╡рд╛рд░, 11 рджрд┐рд╕рдВрдмрд░ 2018 рдХреЛ, 06:40 рдХрд┐рдореА рдЪрд┐рдЙ, рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ? #2049
https://github.com/facebook/fresco/issues/2049

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реВрддреНрд░ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/fresco/issues/2253#issuecomment-446089907 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABUQnQ4cZ-sWkG5b72Ea81wiQjS02yjlks5u31NxgaJpZM4ZIsuf
.

рд╣рд╛рдп @icerfish ,

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛ рддреЛ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкреЗрд╕реНрдЯ рдЬреЛрдбрд╝реЗрдВ)ред рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдлреНрд░реЗрд╕реНрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдРрдк рдмрдВрдбрд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдордиреЗ рдХрднреА рдЗрдВрдЯрд░рдкреНрд▓реЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ "рдмрдЧ" рдФрд░ "рд╣реЗрд▓реНрдк-рд╡рд╛рдВрдЯреЗрдб" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реВрдВрдЧрд╛, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕рдореБрджрд╛рдп рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдп @lambdapioneer ,

рдпрд╣рд╛рдБ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рд╣реИ:

FATAL EXCEPTION: FrescoIoBoundExecutor-8 Process: com.gobuzzvault.android, PID: 17499 java.lang.NoClassDefFoundError: com.facebook.imagepipeline.memory.NativeMemoryChunk at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:25) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:13) at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:267) at com.facebook.imagepipeline.memory.MemoryPooledByteBufferOutputStream.<init>(MemoryPooledByteBufferOutputStream.java:51) at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:73) at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:24) at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:87) at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:99) at com.facebook.imagepipeline.producers.LocalContentUriFetchProducer.getCameraImage(LocalContentUriFetchProducer.java:100) at com.facebook.imagepipeline.producers.LocalContentUriFetchProducer.getEncodedImage(LocalContentUriFetchProducer.java:76) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:52) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:48) at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:43) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:703) at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:564) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:500) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:455) at com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:40) at com.facebook.imagepipeline.memory.NativeMemoryChunk.<clinit>(NativeMemoryChunk.java:31) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:25) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:13) at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:267) at com.facebook.imagepipeline.memory.MemoryPooledByteBufferOutputStream.<init>(MemoryPooledByteBufferOutputStream.java:51) at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:73) at com.facebook.imagepipeline.memory.MemoryPooledByteBufferFactory.newByteBuffer(MemoryPooledByteBufferFactory.java:24) at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:87) at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:99) at com.facebook.imagepipeline.producers.LocalContentUriThumbnailFetchProducer.getThumbnail(LocalContentUriThumbnailFetchProducer.java:135) at com.facebook.imagepipeline.producers.LocalContentUriThumbnailFetchProducer.getCameraImage(LocalContentUriThumbnailFetchProducer.java:100) at com.facebook.imagepipeline.producers.LocalContentUriThumbnailFetchProducer.getEncodedImage(LocalContentUriThumbnailFetchProducer.java:75) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:52)┬а at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:48)┬а at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:43)┬а at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)┬а at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)┬а at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51)┬а at java.lang.Thread.run(Thread.java:764)

рдпрд╣ рдЙрди рдореБрджреНрджреЛрдВ рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рд╣реИрдВред

рдХреЛрдбрдмреЗрд╕ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦрдиреЗ рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЗ рд╕рд╛рде рд╣реА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдзрд┐рдХ SoLoader рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрд╕ рднрдВрдбрд╛рд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░ рджреВрдВрдЧрд╛, рдФрд░ рдХрд╛рд░реНрдпрднрд╛рд░ рдХреБрдЫ рд╕рдордп рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред

рдирдорд╕реНрддреЗ, рдРрдк рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА, рдЬреИрд╕рд╛ рдХрд┐ https://github.com/facebook/fresco/issues/2049#issuecomment -441088387 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ

рдлреНрд░реЗрд╕реНрдХреЛ рез.резрез рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдлреНрд░реЗрд╕реНрдХреЛ рдХреА рдЗрдореЗрдЬрдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ .experiment().setNativeCodeDisabled(true) рд╕реЗрдЯ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдЫрд╡рд┐рдпрд╛рдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬреАрдЖрдИрдПрдл рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕реЛрд▓реЛрдбрд░ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛ред @icerfish , рдпрджрд┐ рдЖрдк GIF рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдлреНрд░реЗрд╕реНрдХреЛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реЛрд▓реЛрдбрд░ рд▓рд┐рдм рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ: facebook/soloader#26
рдпрд╣ рдлрд┐рдХреНрд╕ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рдРрдк рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рд╕реЛрд▓реЛрдбрд░ рд▓рд┐рдм рдХрд╛ рдкреИрдЪ рдХрд┐рдпрд╛ рд╣реБрдЖ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкреАрдЖрд░ рдХреЗ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

repositories {
    maven {
        url  "https://dl.bintray.com/nnesterov/maven" 
    }
}

compile('com.facebook.fresco:fresco:1.10.0') {
    exclude group: 'com.facebook.soloader', module: 'soloader'
}
compile("com.avito.android:patched-soloader:0.1.0")

рдкреИрдЪ-рд╕реЛрд▓реЛрдбрд░ рдХрд╛ рдкрд┐рдЫрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░реА-рд▓реЙрд▓реАрдкреЙрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ
compile("com.avito.android:patched-soloader:0.1.1")

@ Nesterov-n рдорд╣рд╛рди рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

@ рдиреЗрд╕реНрдЯрд░реЛрд╡-рдПрди рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЗрд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдореЗрдВ рдХрдм рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдирдорд╕реНрддреЗ @theromis and @sailesh2
рдореИрдВ рдлреЗрд╕рдмреБрдХ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ (рдпрд╣ рдмрд╣реБрдд рджреБрдЦрдж рд╣реИ)ред рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдлреНрд░реЗрд╕реНрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдареАрдХ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рдФрд░ рдареАрдХ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реЛрд▓реЛрдбрд░ рд▓рд┐рдм рдХреЗ рдкреИрдЪ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг com.avito.android:patched-soloader:0.1.2

рдореЗрд░реЗ рдкреАрдЖрд░ рдЯреВ рд╕реЛрд▓реЛрдбрд░ рд▓рд┐рдм рдХреА рдЕрдм рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рд╕реЛрд▓реЛрдбрд░ рдореЗрдВрдЯреЗрдирд░ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдирдП рд╕реЛрд▓реЛрдбрд░ рд▓рд┐рдм рд░рд┐рд▓реАрдЬ рдХрд╛ рдХреЛрдИ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдлреНрд░реЗрд╕реНрдХреЛ рдЗрд╕ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рдпрд╣ рдЕрддреНрдпрд╛рд╡рд╢реНрдпрдХ рд╣реИ рддреЛ рдЖрдк рдореЗрд░реЗ рдкреИрдЪ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рдЕрднреА рддрдХ рдлреНрд░реЗрд╕реНрдХреЛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдордиреЗ рд╕реЛрд▓реЛрдбрд░ рдлрд┐рдХреНрд╕ рдХреЛ рдЙрддрд╛рд░рд╛ рд╣реИред SoLoader рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЬрд▓реНрдж рд╣реА рдПрдХ рдирдпрд╛ рдлреНрд░реЗрд╕реНрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗред

@oprisnik рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдИрдЯреАрдП рдХреНрдпрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП 2 рдЯреАрдореЛрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдореЛрдЯреЗ рдирдВрдмрд░ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдКрдкрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рд░рд┐рд▓реАрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

SoLoader v0.6.0 рдЕрднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдлреНрд░реЗрд╕реНрдХреЛ рдирд┐рд░реНрднрд░рддрд╛ (6fc071d1892166d11d1f237f10e2d9bcdf858087) рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рд╣рдо рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдмреЛрд▓реНрдЯ рд░рд┐рд▓реАрдЬ (#2257) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЙрд╕ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВрдЧреЗред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╕реБрд╕реНрдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд░рд┐рд▓реАрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреБрдЫ рд╕рдордп рд╕реЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рд╣рдордиреЗ рдЕрднреА рд╕рдВрд╕реНрдХрд░рдг 1.12.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб рд╕реЛрд▓реЛрдбрд░ рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред

рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

@DoNotStrip . рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐/рд╡рд░реНрдЧ рдХреЛ рд╕реНрдЯреНрд░рд┐рдк рди рдХрд░реЗрдВ

-рд░рдЦреЗрдВ @com.facebook.common.internal.DoNotStrip рд╡рд░реНрдЧ *
-рдХреАрдкрдХреНрд▓рд╛рд╕рдореЗрдореНрдмрд░реНрд╕ рдХреНрд▓рд╛рд╕ * {
@com.facebook.common.internal.DoNotStrip*;
}

@DoNotOptimize . рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐/рд╡рд░реНрдЧ рдХреЛ рди рд╣рдЯрд╛рдПрдВ

- рд░рдЦреЗрдВ @com.facebook.soloader.DoNotOptimize рд╡рд░реНрдЧ *
-рдХреАрдкрдХреНрд▓рд╛рд╕рдореЗрдореНрдмрд░реНрд╕ рдХреНрд▓рд╛рд╕ * {
@com.facebook.soloader.DoNotOptimize*;
}

рджреЗрд╢реА рддрд░реАрдХреЗ рдЕрдкрдирд╛рдПрдВ

-рдХреАрдкрдХреНрд▓рд╛рд╕рдореЗрдореНрдмрд░реНрд╕ рдХреНрд▓рд╛рд╕ * {
рдореВрд▓ рдирд┐рд╡рд╛рд╕реА;
}

-рдбреЛрдВрдЯрд╡рд╛рд░реНрди рдУрдХреЗрдУред *-рдбреЛрдВрдЯрд╡рд╛рд░реНрди рдХреЙрдо.рд╕реНрдХреНрд╡реЗрдпрд░рдЕрдк.рдУрдХреЗhttp. *
-рдбреЛрдВрдЯрд╡рд╛рд░реНрди рдУрдХреЗhttp3. *-рдбреЛрдВрдЯрд╡рд╛рд░реНрди javax.annotationред *
-dontwarn com.android.volley.toolboxред *-рдбреЙрдиреНрдЯрд╡рд╛рд░реНрди рдХреЙрдо.facebook.inferред *

@ProHzen рдХреНрдпрд╛ рдЗрд╕рдиреЗ рд╕реЛрд▓реЛрдбрд░ рдХреНрд░реИрд╢ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ?

рд╣рд╛рдБ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

рдпрд╣ рдЕрднреА рднреА рдлреНрд░реЗрд╕реНрдХреЛ 2.0.0 рдореЗрдВ рд╣реИ, :-(, рдХреГрдкрдпрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВ, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдиреЗрдХреНрд╕рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реИ

@ProHzen рд╣реИрд▓реЛ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЕрдкрдиреА рднреНрд░рдо рд╕реВрдЪреА рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреИрд╕реЗ рдЖрдкрдиреЗ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЬрд╛рдирдХрд╛рд░реА:
рдлреНрд░реЗрд╕реНрдХреЛ:рез.резрей.реж
рдХреНрд▓рд╛рд╕рдкрд╛рде 'com.android.tools. рдмрд┐рд▓реНрдб: рдЧреНрд░реЗрдбрд▓ : 3.5.1'

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

hanhmh1203 picture hanhmh1203  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

satyarths picture satyarths  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

goodev picture goodev  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

836154942 picture 836154942  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bigfreeZhou picture bigfreeZhou  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ