How to display GIF in react-native android app?

前端 未结 8 2084
醉梦人生
醉梦人生 2020-12-01 13:50

I want to display a simple gif via URL in my Image tag in my android react-native app but when I start it no image is shown. The code as provided in the docs does work only

相关标签:
8条回答
  • 2020-12-01 14:31

    From React Native Docs:

    When building your own native code, GIF and WebP are not supported by default on Android.

    You will need to add some optional modules in android/app/build.gradle, depending on the needs of your app.

    dependencies {
      // If your app supports Android versions before Ice Cream Sandwich (API level 14)
      implementation 'com.facebook.fresco:animated-base-support:1.3.0'
    
      // For animated GIF support
      implementation 'com.facebook.fresco:animated-gif:2.0.0'
    
      // For WebP support, including animated WebP
      implementation 'com.facebook.fresco:animated-webp:2.1.0'
      implementation 'com.facebook.fresco:webpsupport:2.0.0'
    
      // For WebP support, without animations
      implementation 'com.facebook.fresco:webpsupport:2.0.0'
    }
    
    0 讨论(0)
  • 2020-12-01 14:34

    We made the core library smaller by making things like GIF support optional.

    Because of that we have to manually opt-in for gif support in Android. Add both of the following lines to your android/app/build.gradle file under dependencies:

    compile "com.facebook.fresco:animated-gif:1.3.0"
    compile "com.facebook.fresco:animated-base-support:1.3.0"
    

    So your dependencies section might look like this:

    dependencies {
      compile fileTree(dir: "libs", include: ["*.jar"])
      compile "com.android.support:appcompat-v7:23.0.1"
      compile "com.facebook.react:react-native:+"  // From node_modules
      compile "com.facebook.fresco:animated-gif:1.3.0"
      compile "com.facebook.fresco:animated-base-support:1.3.0"
    

    This solves the problem for your debug build but if you want to solve it also in your release build at them moment you have to add the following line to your proguard-rules file:

    -keep class com.facebook.imagepipeline.animated.factory.AnimatedFactoryImpl { public AnimatedFactoryImpl(com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory, com.facebook.imagepipeline.core.ExecutorSupplier); }
    

    More information on this here: https://github.com/facebook/fresco/issues/1177

    This was fixed with this commit and will be included in the next release.

    0 讨论(0)
  • 2020-12-01 14:38

    For the latest version of react-native '0.61.5' you need '2.0.0' Fresco Version ;

    implementation 'com.facebook.fresco:fresco:2.0.0'
    implementation 'com.facebook.fresco:animated-gif:2.0.0'
    
    0 讨论(0)
  • 2020-12-01 14:39

    All of the above did not work for me with the latest React Native(v0.48). I had to add the following dependencies in my android/app/build.gradle

    compile 'com.facebook.fresco:fresco:1.5.0' compile 'com.facebook.fresco:animated-gif:1.5.0'

    0 讨论(0)
  • 2020-12-01 14:39

    if using RN Version .60 try adding below inside app build.gradle file

    dependencies {
        implementation 'com.facebook.fresco:animated-gif:2.0.0'
    }
    

    Source

    0 讨论(0)
  • 2020-12-01 14:44

    For me adding the dependencies like below wasn't enough:

    compile 'com.facebook.fresco:animated-gif:1.9.0'
    

    I also had to upgrade my gradle version in the file:

    android/gradle/wrapper/gradle-wrapper.properties like this:

    distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
    

    and also my build tools version in the file:

    android/build.gradle like this:

    classpath 'com.android.tools.build:gradle:3.0.1'
    
    0 讨论(0)
提交回复
热议问题