How can I resolve conflicting support library version? - flutter

I'm making a flutter app.
I'm trying to use two plugins.
image_picker: 0.4.10
firebase_storage: 1.0.3
But I got this error.
* What went wrong:
Execution failed for task ':app:preDebugBuild'.
> Android dependency 'com.android.support:support-v4' has different version for the compile (26.1.0) and runtime (27.1.1) classpath. You should manually set the same version via DependencyResolution
I understood It is a dependencies problem.
But these dependencies are written in plugin's build.gradle.
So if I fix the version string now, when I update plugin I will have same problem every time.
Do you know any good solution?
Thank you.

Related

Upgrading projects Flutter SDK, migration to null-safety - compile time errors in packages

We have decided to upgrade the Flutter version from 1.22 to 2.0 (migrating to null-safety) in an existing project.
We checkout Flutter v2.0.0 and then run the following command:
dart pub upgrade --null-safety
Flutter nicely resolves all dependency conflicts and sets new versions for packages.
Without changing min environment SDK in pubspec.yaml (staying at ">2.10.0 <3.0.0") we fix all breaking changes in the code.
All errors in vs code disappear so we can compile the code. But, when we do compile we get errors from packages e.g. reorderables, fl_chart, flutter_svg etc. stating some classes are undefined. It seems like packages were compiled with a higher SDK version and they weren't set min SDK version to match the one that they were compiled with.
So the package states it can be compiled with Flutter 2.10.0 but in reality, it fails to compile because in this version of Flutter it is missing some necessary imports.
My question is, is this a problem of packages or a problem in my way of processing with migration?
Is it that packages are lacking properly set min SDK?
My conclusion is that most packages are lacking correctly set SDK version constraints. It seems authors usually compile packages for a certain version and do not check min SDK version required. When running dependency resolver it seems to solve dependencies but in compile time it fails.

After cloning any flutter project I can not resolve dependencies?

I want to clone open source projects, I face a hole punch of errors after tapping pub get, all dependencies cannot be resolved and many of the code is out of date, so how can I overcome this?
Please use intl 0.17.0 to resolve the issue
This problem is due to the conflict between dependency versions.
You are using two dependencies that need different version of intl:
flutter_localization
openfluttercommerce
in your pubspec.yaml change the version of intl from 0.16.0 to 0.17.0. It may cause another conflict with other dependencies that may depend on 0.16.0 version of intl. If it accurs, you need to change the version of utilized dependencies to whatever need the same version of intl.
Whenever you clone the project from Github try to open it with flutter sdk version 1.17.0 or 1.22.4 after seeing the first commit of the project then the problem seems to be solved.
but here it seems that you got problem with two dependencies try to resolve that by not mentioning any version in yuml file.

Flutter: build runner throws a precompile error

I am using analyser 1.7.1. The latest build_runner build command generates the following error.
flutter packages pub run build_runner build Failed to precompile
build_runner:build_runner:
../../../sdk/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.7.1/lib/src/error/best_practices_verifier.dart:1998:14:
Error: A non-null value must be returned since the return type
'String' doesn't allow null. String get displayString {
The usual flutter clean and pub cache repair commands don't seem to be fixing the problem, and displayString doesn't appear anywhere in my codebase.
There's an issue open 9 days ago. Here's the key part:
Right now, the current state of affairs is that:
package:analyzer 1.7.0 requires package:meta ^1.4.0
package:analyzer 1.7.1 has the same contents as 1.7.0, but requires package:meta ^1.3.0
Flutter stable pins package:meta to 1.3.0
I'm uncertain how we're running into the exceptions above - the two most recent versions of analyzer are pretty explicit about which version of meta they need.
#edlman do you have any dependency_overrides in your pubspec?
you're right, I'm using 3rd party pkgs which depend on meta 1.4.0 so I put it to dependency_overrides to solve the collision. It didn't come to my mind it cause such a problem.
I've changed the override to 1.3.0, it works fine, no problem yet
So I'd suggest checking whether or not there's a dependency_overrides in your pubspec, too.
It's a problem with analyser 1.7.1.
Add
dependency_overrides:
analyzer: 1.7.0
to pubspec.yaml.
There are more details available in raina77ow's answer.

Why I can't add flutter dialogflow dependencies on pub spec.yml

I'm trying to implement chatbot on flutter and I'm trying to add dependencies "flutter_dialogflow: ^0.1.3" in the pub spec.yaml and got error. Can anyone help me how to fix it?
it seems you have run into a dependency incompatibility. if you have more than 5 or 6 dependencies it will be harder to find where this issue comes from. best option to will be,
Upgrade Flutter to the latest Version.
Upgrade all the dependencies to the latest Version. refer pub.dev when upgrading

I am having this error in flutter while using google map through dependency map_view kindly help me

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.10 and higher.
The following dependencies do not satisfy the required version:
project ':map_view' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.50
Your gradle plugin version that is supported in your project is 1.3.10 and higher, the plugin you are trying to install is using gradle 1.2.50 there for not supported. I suggest you find another plugin since the only map view plugin i found states that is discontinued. I suggest when you pick a plugin to use to check how often it get updated and when the last update happent.