Fresco: рдЬрд┐рдВрдЬрд░рдмреНрд░реЗрдб рдкрд░ рд╡реЗрдмрдкреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдЕрдЧре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/fresco

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

рдкреБрд░рд╛рдиреЗ рд╕реИрдорд╕рдВрдЧ рдбрд┐рд╡рд╛рдЗрд╕ - рд╕реИрдорд╕рдВрдЧ S3 рдорд┐рдиреА рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдореЗрдЬ рдбрд┐рдХреЛрдбрд░ рдФрд░ рдЗрдореЗрдЬ рдкрд░реНрдЬрд┐рдВрдЧ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рд╣реИ рдЬреЛ рдЕрдм рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдлреНрд░реЗрд╕реНрдХреЛ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛ рд╡рд╣ 0.14.1 рдерд╛ред

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

  • рдлреНрд░реЗрд╕реНрдХреЛ рд╕рдВрд╕реНрдХрд░рдг: 1.0.0 рдФрд░ рдКрдкрд░
  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг: Android 4.3 (API 18) рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ Samsung GT-I9300 рдкрд░ рджреЗрдЦрд╛ рдЧрдпрд╛

Fresco 1.4.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдСрдирдлреЗрд▓рд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓рд┐рд╕рдирд░ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЕрдкрд╡рд╛рдж рджреЛрдиреЛрдВ рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓реЙрдЧ

E/OpenGLRenderer: Cannot generate texture from bitmap
E/OpenGLRenderer: Cannot generate texture from bitmap
W/System.err: java.lang.NullPointerException
W/System.err:     at com.facebook.imagepipeline.platform.GingerbreadPurgeableDecoder.decodeFileDescriptorAsPurgeable(GingerbreadPurgeableDecoder.java:134)
W/System.err:     at com.facebook.imagepipeline.platform.GingerbreadPurgeableDecoder.decodeJPEGByteArrayAsPurgeable(GingerbreadPurgeableDecoder.java:75)
W/System.err:     at com.facebook.imagepipeline.platform.DalvikPurgeableDecoder.decodeJPEGFromEncodedImage(DalvikPurgeableDecoder.java:89)
W/System.err:     at com.facebook.imagepipeline.platform.GingerbreadPurgeableDecoder.decodeJPEGFromEncodedImage(GingerbreadPurgeableDecoder.java:41)
W/System.err:     at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decodeJpeg(DefaultImageDecoder.java:187)
W/System.err:     at com.facebook.imagepipeline.decoder.DefaultImageDecoder$1.decode(DefaultImageDecoder.java:62)
W/System.err:     at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decode(DefaultImageDecoder.java:125)
W/System.err:     at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:248)
W/System.err:     at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$200(DecodeProducer.java:112)
W/System.err:     at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:145)
W/System.err:     at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:207)
W/System.err:     at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:27)
W/System.err:     at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:78)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
W/System.err:     at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:43)
W/System.err:     at java.lang.Thread.run(Thread.java:841)

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

рдореИрдВ WebpSupportStatus рдХреЗ рдЕрдВрджрд░ рдХрд╛рд░рдг рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдбрд┐рдХреЛрдбрд░ рдХреЗ рд╕реНрдерд┐рд░ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ ImagePipelineConfig WebpSupportEnabled рдкреНрд░рдпреЛрдЧ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рд╡реЗрдмрдкреА рдЫрд╡рд┐ рд╣реИред

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

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

рдореИрдВ WebpSupportStatus рдХреЗ рдЕрдВрджрд░ рдХрд╛рд░рдг рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдбрд┐рдХреЛрдбрд░ рдХреЗ рд╕реНрдерд┐рд░ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ ImagePipelineConfig WebpSupportEnabled рдкреНрд░рдпреЛрдЧ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рд╡реЗрдмрдкреА рдЫрд╡рд┐ рд╣реИред

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

рдЬрдм рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдЖрдпрд╛ рддреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдбрд┐рдХреЛрдбрд░ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЭрдВрдбреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реА?

рд╣рд╛рдп @рдХрд┐рд░рд╡рд╛рди ,
рдореБрдЭреЗ ImagePipelineConfig.java рдореЗрдВ рдХреЛрдб рдорд┐рд▓реЗ

      // We check using introspection only if the experiment is enabled
      if (mImagePipelineExperiments.isWebpSupportEnabled() &&
          WebpSupportStatus.sIsWebpSupportRequired) {
        webpBitmapFactory = WebpSupportStatus.loadWebpBitmapFactoryIfExists();
        if (webpBitmapFactory != null) {
          BitmapCreator bitmapCreator = new HoneycombBitmapCreator(getPoolFactory());
          setWebpBitmapFactory(webpBitmapFactory, mImagePipelineExperiments, bitmapCreator);
        }
      }

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдПрдВрдбреНрд░реЙрдЗрдб 4.3 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдзреНрд╡рдЬ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╕рдордп WebpSupportStatus.sIsWebpSupportRequired рдЭреВрдард╛ рд╣реИред
рддреЛ WebpSupportStatus.loadWebpBitmapFactoryIfExists() рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛ рдирд╣реАрдВ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рдзрд┐ buildPlatformDecoder() рдореЗрдВ ImagePipelineFactory рд░рд┐рдЯрд░реНрди GingerbreadPurgeableDecoder ред GingerbreadPurgeableDecoder рдлрд╝рд╛рдЗрд▓ рдХреЛ sWebpBitmapFactory рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдирдкреАрдИ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рднреНрд░рдорд┐рдд рд╣реИ

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