Not able to install dependencies in my flutter project - flutter

I am trying to install image_picker and firbase_storage in my flutter project. But whatever version I try to install, it fails. and gives error like this -
Because image_picker >=0.3.0 requires Flutter SDK version >=0.1.4 <2.0.0 and image_picker <0.3.0 requires SDK version >=1.8.0 <2.0.0, image_picker is forbidden.
I have tried out installing every version but not able to install even a single version.
Flutter doctor -v is working fine and following is the content of my pubspec.yaml file
name: timepass
description: A new Flutter project.
version: 1.0.0+1
environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"
dependencies:
flutter_secure_storage: ^3.1.3
image_picker: ^0.1.4
firebase_storage: ^0.2.0
location: ^1.4.1
graphql_flutter: ^0.9.1
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
dev_dependencies:
flutter_test:
sdk: flutter

One way to approach this kind of dependency issues is that just let the pub to fetch the appropriate version if you are facing any issues or conflicts with dependency.
Add the dependency on pubspec.yaml as below
dependencies:
image_picker: any
or
dependencies:
image_picker:
Then check the pubspec.lock file and find the version number.
In this case, you may get
image_picker:
dependency: "direct main"
description:
name: image_picker
url: "https://pub.dartlang.org"
source: hosted
version: "0.5.0"
Then you can modify pubspec.yaml as
dependencies:
image_picker: ^0.5.0

You need to allow a newer image_picker version.
Try
dependencies:
image_picker:
or
dependencies:
image_picker: ^0.5.0

Related

Why does Flutter shared_preferences download an older version without null safety?

I'm trying to add shared_preferences to a Flutter project. By default, version 0.5.7+3 is downloaded which isn't null safe.
Adding the latest version, 2.0.15, gets the following error:
Running "flutter pub get" in platform...
Because shared_preferences >=2.0.10 depends on shared_preferences_windows ^2.0.1 which depends on path_provider_platform_interface ^2.0.0, shared_preferences >=2.0.10 requires path_provider_platform_interface ^2.0.0.
And because path_provider_platform_interface >=2.0.0 depends on platform ^3.0.0, shared_preferences >=2.0.10 requires platform ^3.0.0.
So, because platform depends on shared_preferences ^2.0.15 and platform is 1.0.0+1, version solving failed.
pub get failed (1; So, because platform depends on shared_preferences ^2.0.15 and platform is 1.0.0+1, version solving failed.)
exit code 1
The platform version is actually the version number in the pubspec.yaml. Changing the version number to 3.0.0 downloads 2.0.15 of shared_preferences but then fails on running:
Launching lib/main.dart on sdk gphone64 arm64 in debug mode...
lib/main.dart:1
Building with Flutter multidex support enabled.
: Error: Error when reading 'lib/platform.dart': No such file or directory
../…/src/method_channel_path_provider.dart:7
import 'package:platform/platform.dart';
^
: Error: Error when reading 'lib/platform.dart': No such file or directory
../…/interface/common.dart:8
import 'package:platform/platform.dart';
pubspec.yaml is:
name: platform
description: A new Flutter project.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: '>=2.7.0 <3.3.3'
dependencies:
flutter:
sdk: flutter
firebase_core:
firebase_auth:
google_sign_in:
firebase_analytics:
font_awesome_flutter:
provider:
shared_preferences:
config:
path: config
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^2.0.0
flutter:
assets:
- assets/images/
uses-material-design: true
How can I add a null safe version of shared_preferences to my project?
Why is the pubspec.yaml version number being read as platform version?
The problem turned out to be the platform name in the pubspec.yaml.
This pubspec.yaml
name: platform
description: A new Flutter project.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: '>=2.18.2 <3.0.0'
dependencies:
shared_preferences:
flutter:
sdk: flutter
dev_dependencies:
flutter_test:
sdk: flutter
resolves to version 0.5.7+3 of shared_preferences:
Package Name Current Upgradable Resolvable Latest
direct dependencies:
shared_preferences *0.5.7+3 *0.5.7+3 *0.5.7+3 2.0.15
Changing the pubspec.yaml name field to something different:
name: notplatform
description: A new Flutter project.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: '>=2.18.2 <3.0.0'
dependencies:
shared_preferences:
flutter:
sdk: flutter
dev_dependencies:
flutter_test:
sdk: flutter
means shared_preferences is updated when flutter pub upgrade is run
shared_preferences 2.0.15 (was 0.5.7+3)

Flutter path_provider and sdk version mismatch

The current Dart SDK version is 2.10.5.
Because path_provider 2.0.1 requires SDK version >=2.12.0-259.9.beta <3.0.0 and no versions of path_provider match >2.0.1 <3.0.0, path_provider ^2.0.1 is forbidden.
So, because harmonoid depends on path_provider ^2.0.1, version solving failed.
pub get failed (1; So, because harmonoid depends on path_provider ^2.0.1, version solving failed.)
How do i solved this error? this is my pubspec.yaml
version: 1.0.0+1
environment:
sdk: ">=2.8.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
animations: ^1.1.2
provider: ^4.3.3
assets_audio_player:
git: https://github.com/alexmercerind/Flutter-AssetsAudioPlayer
media_metadata_retriever: ^0.0.2+1
http: ^0.12.2
path: ^1.7.0
path_provider: ^2.0.1
flutter_local_notifications: ^3.0.3
url_launcher: ^5.5.0
permission_handler: ^5.0.1+1
share: ^0.6.5+4
palette_generator: ^0.2.3
implicitly_animated_reorderable_list: ^0.3.2
dev_dependencies:
flutter_test:
sdk: flutter
error
My Dart SDK version is 2.12.0, and the Flutter version is 2.0.1. I created a new project and copied all your dependencies. The project worked without any problems.
For saving your time, I recommend upgrading to the stable channel and Flutter 2 using these commands or this link.
flutter channel stable
flutter upgrade
If you don't want to migrate your Flutter and Dard SDK versions yet,
I would recommend you to try and remove the version from the line:
path_provider: ^2.0.1
so it would look like this: path_provider:
run: pub get again
run your project again
Eventually I would recomment to migrate to the newest version of the SDKs and upgrade all your dependencies. This is just a temporary solution.

Dependency conflict

I am little bit confused. When I added easy_localization dependency and run flutter pub get then I give following message:
Because easy_localization >=2.1.0+1 <2.3.4-nullsafety depends on flutter_localizations
any from sdk which depends on path 1.8.0-nullsafety.1,
easy_localization >=2.1.0+1 <2.3.4-nullsafety requires path 1.8.0-nullsafety.1.
I switched to Stable channel of Flutter and I have following Dart version:
Flutter 1.22.6
Dart 2.10.5
Here is my fully pubspec file:
name: demo
description: demo
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: 1.0.0
flutter_bloc: 6.1.1
equatable: 1.2.5
easy_localization: 2.3.3+1
dependency_overrides:
intl: 0.16.1
flutter:
uses-material-design: true
assets:
- assets/translations/
I don't understand why I have dependency conflict. Also I tried remove .lock files. Do you have any ideas where is a problem? Thanks.
Its simple, Just remove dependency version like this
image_picker:
intl:
http: ^0.12.2
It will automatic choose version which is needed

pub get failed:version solving failed

Flutter_test depends on meta 1.1.8 and firebase_login depends on meta ^1.2.2.
firebase_login depends on flutter_test any from sdk, version solving failed.
pub get failed
pubspec.yaml
version: 1.0.0+1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
firebase_auth: ^0.18.0+1
equatable: ^1.2.4
google_sign_in: ^4.5.3
meta: ^1.2.2
cupertino_icons: ^0.1.3
dev_dependencies:
flutter_test:
sdk: flutter
lint: any
You can get both by
dependencies:
meta: ^1.2.2
dependency_overrides:
meta: ^1.1.8
I have same problem with bloc:
Because every version of passcode_navigator from git depends on flutter_bloc ^7.3.3 and every version of feature_menu from path depends on flutter_bloc ^8.0.0, passcode_navigator from git is incompatible with feature_menu from path
I resolve it with adding to pubspec:
dependency_overrides:
flutter_bloc: any
Do this,
meta: ^1.1.8
And then, run this,
flutter pub get
hi there try to downgrade the version of meta to 1.1.8 i tried and it worked with me in flutter 1.20.1
I experienced a similar issue with Firebase auth and permission_handler:
# pubspec.yaml:
dependencies:
flutter:
sdk: flutter
firebase_auth: ^1.4.1
permission_handler: ^5.1.0+2
The error message (truncated):
Because permission_handler ^5.1.0 depends on permission_handler_platform_interface ^2.0.2 which depends on plugin_platform_interface ^1.0.2, permission_handler ^5.1.0 requires plugin_platform_interface ^1.0.2.
And because firebase_auth 1.4.1 depends on firebase_core_platform_interface ^4.0.1 and no versions of firebase_auth match >1.4.1 <2.0.0, permission_handler ^5.1.0 is incompatible with firebase_auth ^1.4.1.
So, because my_flutter_project depends on both firebase_auth ^1.4.1 and permission_handler ^5.1.0+2, version solving failed.
A solution that worked for me:
Update permission_handler to the latest version:
flutter pub add permission_handler
Update meta to 1.2.2
meta: ^1.2.2
also update flutter using flutter upgrade command
flutter upgrade

Flutter image version issue

I have just upgraded my flutter version and now I am facing the following issue when I get the packages in pubsec.yml file:
Because every version of flutter_test from sdk depends on image 2.1.4 and Instant_Feedback depends on image ^2.1.9, flutter_test from sdk is forbidden.
So, because Instant_Feedback depends on flutter_test any from sdk,
version solving failed. pub get failed (1; So, because
Instant_Feedback depends on flutter_test any from sdk, version solving
failed.)
My pubsec.yml file
dependencies:
flutter:
sdk: flutter
http: ^0.12.0+2
shared_preferences: ^0.5.4+8
firebase_messaging: ^6.0.3
flutter_crashlytics: ^1.0.0
firebase_core: ^0.4.2+1
cupertino_icons: ^0.1.3
device_calendar: ^1.0.0+2
cloud_firestore: ^0.12.11
auto_size_text: ^2.1.0
flutter_expandable_menu: ^0.0.1
webview_flutter: ^0.3.17
flutter_spinkit: ^4.1.1+1
get_it: 2.1.0
bloc: ^0.15.0
flutter_bloc: 0.21.0
equatable: 0.5.1
rflutter_alert: ^1.0.3
expandable: ^3.0.1
connectivity: ^0.4.6
firebase_auth: ^0.15.1
flutter_email_sender: ^2.2.1
mockito: 4.1.1
flutter_secure_storage: ^3.3.1+1
image_picker: ^0.6.2+2
async: any
image: ^2.1.10
image_crop: ^0.3.1
flutter_cache_manager: ^1.1.3
circular_profile_avatar: ^1.0.3
package_info: ^0.4.0+12
flutter_local_notifications: ^0.8.4+3
flutter_webview_plugin: ^0.3.10
url_launcher: ^5.2.7
flutter_localizations:
sdk: flutter
flutter_cupertino_localizations: ^1.0.1
dev_dependencies:
flutter_driver:
sdk: flutter
test: any
ozzie: 2.0.1
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
assets:
- lib/app/assets/images/
- lib/app/assets/flags/
- lang/en.json
- lang/de.json
Because every version of flutter_test from sdk depends on image 2.1.4 and Instant_Feedback depends on image ^2.1.9, flutter_test from sdk is forbidden.
I faced the same issue. Couldn't find the specific reason for the flutter_test depending on a specific version of this image library. Maybe it's an issue from the flutter side. So here are some workaround solutions:
comment out the flutter_test dev_dependency.
dev_dependencies:
# flutter_test:
# sdk: flutter
set the required version.
Instead of 2.1.12, I set the Image package version to 2.1.4 (as requested in the error message)
image: ^2.1.4
If more than one packages versions are noncompatible to each other, and you don't know their exact compatible version, you can find it by setting both the conflicting dependencies to any, e.g.
flutter_crashlytics: any
firebase_core: any
This will automatically figure out the compatible package version. Check these new compatible versions in pubspec.lock file, which will be auto-generated by running flutter package get.
# Generated by pub
# See https://www.dartlang.org/tools/pub/glossary#lockfile
packages:
flutter_crashlytics:
...
version: "1.0.0"
firebase_core:
...
version: "0.4.2+1"
Replace any with those correct versions.
flutter_crashlytics: 1.0.0
firebase_core: 0.4.2+1
Note: You should never leave your versions as any