simolus3 / fluttie

Easily display stunning Lottie animations in flutter apps with this plugin.
Other
453 stars 54 forks source link

Run error #1

Open geoffery009 opened 6 years ago

geoffery009 commented 6 years ago

FAILURE: Build failed with an exception.

BUILD FAILED in 2s Finished with error: Gradle build failed: 1

simolus3 commented 6 years ago

Thanks for the report. Does this error occur when trying to build the example included in this repo or did you encounter it in your own project? I'm asking because I can build projects depending on Fluttie on my machine and because Fluttie does not depend on 'com.android.support:support-fragment'. It only transitively depends on 'com.android.support:appcompat-v7' with version 27.0.2. So, if you're including other dependencies in your own project, it would be helpful if you could list the other flutter plugins you're using in your pubspec.yaml.

geoffery009 commented 6 years ago

dependencies: flutter: sdk: flutter

cupertino_icons: ^0.1.0 location: "^1.1.7" http: "^0.11.3+16" json_annotation: "^0.2.2" intl: "^0.15.4" shared_preferences: "^0.4.0" share: "^0.4.0" package_info: "^0.3.0" flutter_webview_plugin: "^0.1.5" fluttie: "^0.2.0"

use in my own project , run the example and it conflict with 'location' flutter plugin

simolus3 commented 6 years ago

Ok, I think I figured it out. What I said earlier is wrong as the Android library of Lottie does depend on the support-fragment library. As the version Lottie is using differs from the version the location package requests, the build fails because Gradle can't decide which version to include. If you go to the build.gradle of your android/app module and add the following line at the beginning of the dependencies section, your build should work even with Fluttie enabled:

dependencies {
    implementation 'com.android.support:support-fragment:27.1.0'

    [...]

This will force the location plugin to use the newer version that Fluttie is using as well. I have just published an update for Fluttie including the latest version of Lottie, I recommend that you use it as well here:fluttie: "^0.2.1". After you have done all this, please run

flutter clean
flutter packages get

and check if you can then run your app with Fluttie.

geoffery009 commented 6 years ago

it works:0,thanks ps:how to change widget size ,i use 'preferredSize' but it dosent works


await instance.prepareAnimation(emojiComposition,
        duration: const Duration(seconds: 2),
        preferredSize: Fluttie.kDefaultSize,
        repeatCount: const RepeatCount.infinite(),
        repeatMode: RepeatMode.START_OVER);
simolus3 commented 6 years ago

You can change the size of your animations in two places: In instance.prepareAnimation and in the place you create the widget in, with new FluttieAnimation(yourAnimation, size: const Size(w, h)). You're looking for the second option here. The first one, which you're using, controlls the dimension in which the animation will be rendered in (higher size: better quality, but it might introduce lag on slower devices). The second one is the size the animation will be displayed with. They don't have to be the same size as you can, for instance, scale small animations to a big display size when high resolutions aren't required. Effectively, you need to use the size parameter when you're creating a new FluttieAnimation as a widget. If the outcome of that animation looks bad, increase the preferredSize when preparing the animation. If it feels sluggish, decrease the preferred size.