Related
I have a flutter app that I am trying to build through bitrise.
I keep getting a tonne of errors along the lines of
Error: The 'super-parameters' language feature is disabled for this library.
Try removing the package language version or setting the language version to 2.17 or higher.
super.key
and it is blocking me from analyzing and building the app.
Now the issue is, I am using flutter install with upgrade set to true , and have sdk target in my pubspec.yaml as
Environment:
sdk: ">=2.17.6 <3.0.0"
I disabled the caching steps, and tried to create a new deployment pipeline, to no avail.
In your workflow, add Flutter Install, Then set your desired flutter version on Input Variables sections's Flutter SDK git repository version field. e.g. 2.8.0.
I upgraded my Flutter SDK and now my project is broken. I need to basically revert back to a Flutter SDK which uses Dart 1.x.
I tried the following in the pubspec.yaml,
environment:
sdk: ">=1.19.0 <2.0.0"
flutter: "^0.1.2"
dependencies:
flutter:
sdk: flutter
but now the project just simply doesn't build.
Running "flutter packages get" in binformed...
Package binformed requires Flutter SDK version ^0.1.2 but the current SDK is 0.2.5-pre.38.
pub get failed (1)
Do i need to uninstall the SDK and reinstall it?
Flutter is versioned using git. Changing the Flutter version is as simple as changing git branch.
There are 2 different ways:
flutter channel <branch> (example: flutter channel stable)
This command is used to change between branches – usually stable/dev/beta/master.
We can also put a specific commit id from git.
flutter downgrade <version> (example: flutter downgrade v1.2.1)
This command will use a specific version number.
You can have the list of the available version numbers using flutter downgrade or here
After this, run any Flutter command (such as flutter doctor), and Flutter will take care of downloading/compiling everything required to run this version.
Run the following command to see a list of available versions.
flutter version
Then choose a version you want to switch to by running
flutter version v1.2.1
To undo and revert back to stable
flutter channel stable
flutter upgrade
In the Flutter install directory execute
git checkout v0.1.9
then run
flutter doctor
You can check which versions are available in the Flutter GitHub repository https://github.com/flutter/flutter
There is an open feature request to make this easier https://github.com/flutter/flutter/issues/14230
Don't use flutter version vX.X.X, use flutter downgrade instead.
Warning: "flutter version" will leave the SDK in a detached HEAD state. If you are using the command to return to a previously installed SDK version consider using the "flutter downgrade" command instead.
So, you should use
flutter downgrade
Edit:
If there had been no previous versions installed, the above command would fail. So, if you have a specific version of Flutter that you’d like to switch to, you can use the flutter version command:
flutter downgrade v1.17.0
You can find list of versions here
To downgrade there are many deprecated commands.
The two that actually work, and I've tested them, are:
flutter downgrade v[flutter build version]
For instance:
flutter downgrade v1.22.6
And the other one: go to your flutter sdk folder, that is your folder named "flutter" and inside it open a new terminal. Then type:
git checkout [flutter build version]
For instance:
git checkout 1.22.3
Then do flutter doctor and you'll confirm you switched correctly.
You can check the versions on: https://flutter.dev/docs/development/tools/sdk/releases?tab=macos
And for details at: https://flutter.dev/docs/release/breaking-changes
If you happen to want to switch channel, just do:
flutter channel [channel]
For instance (choose one of master, stable, dev, beta):
flutter channel stable
And if you want to upgrade again:
flutter upgrade
Inorder for a proper downgrade to any version.
Change to Dev mode
flutter channel dev
flutter downgrade v(type your version number) eg below.
flutter downgrade v2.0.6
This worked for me !
Go to the terminal and type the specific version number, for eg -
flutter downgrade v1.22.3
Then just press enter.
After fetching the files from the internet, it will ask,
Downgrade flutter to version 1.22.5
? [y|n]:
Type y and it will downgrade to the specific version.
Restart the IDE for the settings to take place.
To solve these errors:
$ flutter version
Could not find a command named "version".
$ flutter downgrade v1.22.6
There is no previously recorded version for channel "stable".
Delete old flutter folder
Download the archive and unzip instead of deleted flutter folder
OR
cd "$(dirname $(which flutter))" then
git checkout . (optional)
git pull origin (optional)
git checkout v1.22.6
flutter doctor
p.s.
Don't forget to restart your android studio
At the moment, the easiest way to manage flutter versions is through fvm.
Install fvm
brew tap leoafarias/fvm
brew install fvm
Install your version
fvm install x.x.x
Install your version globally (if desired)
fvm global x.x.x
Here's a link to the app guide
https://fvm.app/docs/getting_started/installation
Just use flutter downgrade v2.8.0
then flutter ask for confirmation
Downgrade flutter to version 1.22.5
? [y|n]:
Type y for Yes to confirm changes
Download Flutter SDK release: flutter_windows_1.17.0-stable: https://flutter.dev/docs/development/tools/sdk/releases
Replace the existing Flutter folder to this version
Make sure that environment variables and Flutter + Dart Settings on your IDE
are still tied to this folder/path
Just flutter downgrade is enough, it will downgrade to previous stable version.
I find it a little tough to switch (upgrade/downgrade) to a specific Flutter version from the command line. Some of the answers here are outdated.
I prefer to download the SDKs for different versions from here manually.
Let's say I download 2.0.1, 2.0.5 and 2.0.6.
2.0.1 is the current Flutter SDK version for me.
To switch to 2.0.5, delete the current Flutter SDK (the one with the blue icon) and unzip flutter_macos_2.0.5-stable.zip. Then run flutter clean followed by flutter doctor to confirm that everything worked correctly.
This has the benefit of not having to change any paths or having to re-download the entire SDK every time you want to switch.
On macOS, if you get system warnings for not being able to run dart or gentool, then press Allow anyway under System Preferences > Security & Privacy
The simplest way to change your flutter version is to:
Navigate to this link and download the flutter version you want.
Extract the files and replace your older flutter directory with them.
If you were using flutter already then no need to redefine the PATH, else, make sure that environment variables are still tied to this folder/path.
Run flutter --version or flutter doctor to check that everything went ok.
I found 2-steps easy solution to migrate to any specific version of Flutter.
Navigate to Flutter repo path (Yes, the one we download from official website and unzipped it) in a terminal
Run the following command : git checkout 2.10.5 && flutter precache
Note: Verify & change the Flutter version from here
Open Terminal and Navigate to Flutter folder
Run the following command with the Flutter version you want to switch to:
git checkout 2.10.5 && flutter precache
Reference: https://github.com/flutter/flutter/issues/64238#issuecomment-678605514
All the answers are outdated and not working after the release of flutter 3.0.
My solution is somewhat complicated but will still work in May 2022 and after.
I will show you how to downgrade from flutter 3 to Flutter 1.22.6.
the first step is to locate where you have to install flutter files when you have installed them for the 1st time. Like mine is located in c:\src\flutter.
Cut the flutter folder and paste it somewhere. (note:- you have shutdown your android studio/vs code if running)
go to Flutter SDK releases and download the desired flutter version you want. I choose flutter 1.22.6 for windows.
now extract the downloaded flutter zip and paste in c:\src\flutter (or wherever your flutter was installed previously). (don't worry if you're thinking that your Environment Variables path will change, so that is not true, it will still work. you don't have to change anything in Environment variables)
After pasting the flutter extracted folder open android studio and go to File/Setting/language and framework/flutter and correct the Flutter SDK path to C:\src\flutter.(as shown in the image).
6. Now press apply and run flutter --version
if you are using brew (macos)
you can create rb file and use brew to install or downgrade flutter
create file with name flutter.rb
cask "flutter" do
version "2.2.0"
url "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_#{version}-st$
verified: "storage.googleapis.com/flutter_infra_release/"
name "Flutter SDK"
desc "UI toolkit for building applications for mobile, web and desktop"
homepage "https://flutter.dev/"
livecheck do
url "https://storage.googleapis.com/flutter_infra_release/releases/releases_macos.json"
regex(%r{/flutter[._-]macos[._-]v?(\d+(?:\.\d+)+)[._-]stable\.zip}i)
end
auto_updates true
binary "flutter/bin/dart"
binary "flutter/bin/flutter"
end
then use brew install ./flutter.rb to install flutter or downgrade flutter version
This solutions works in 2021
Go to your flutter SDK folder, which is your folder named "flutter" and inside it open a new terminal. Then type:
git checkout (your flutter version)
then,
run flutter doctor
After this check your version.
To downgrade your flutter version:
Run flutter downgrade v2.5.3 or whatever flutter version you want from here.
If it resulted in any error like
There is no previously recorded version for channel "stable".
or that there is no previous version,
then, make sure to switch to the correct branch {stable, master, dev, beta} using the following command:
flutter channel master
Finally, Run flutter doctor to check that everthing went well.
These are the flowing step to downgrade any flutter version:
Step 1:
cd [your flutter sdk path]
Step 2:
git checkout [ enter your version ref ]
To get ref goto the url and copy your desired version ref.
https://docs.flutter.dev/development/tools/sdk/releases
Suppose I downgrade version 3.3.2
Step 3:
flutter doctor or flutter --version
Downgrade to a specific version on stable channel
Locate flutter path:
whereis flutter
On flutter folder execute
# clean the repo
git clean -fdx
git reset --hard
git fetch --all --prune
# list available tags starting with 2.10
git tag | grep 2.10
# checkout to stable on tag
git checkout stable
git reset --hard 2.10.5
Finally download the flutter tools
flutter doctor
The easiest way is to go to your flutter sdk, if you're on Linux open terminal and run flutter sdk-path then cd to the sdk path.
run git checkout <ref_of_sdk_you_want>. access the sdk versions here. after the switch, run flutter doctor and restart your IDE, that's it.
You can switch between versions using this way.
Steps to change the Flutter version is as simple as changing the git branch.
flutter channel <branch> (example: flutter channel stable)
This command is used to change between branches – usually stable/dev/beta/master. We can also put a specific commit id from git.
flutter downgrade <version> (example: flutter downgrade v1.2.1)
This command will use a specific version number. You can have the list of the available version numbers using flutter downgrade
After this, run any Flutter command (such as flutter doctor), and Flutter will take care of downloading/compiling everything required to run this version.
A few months ago I made an android application using flutter. The application requires various dependencies such as intl, cached network image, stopper, carousel_slider, etc.
Then right now I want to convert the project to flutter_web. Here are the steps that I did:
clone github web flutter
I run the command "flutter packages pub global activate webdev"
Then I edited pubspec.yaml and I adjusted it to pubspec.yaml in the previous project (android project)
Here is the contents of pubspec.yaml on the web flutter project:
name: flutter_web.examples.hello_world
environment:
# You must be using Flutter> = 1.5.0 or Dart> = 2.3.0
sdk: '> = 2.3.0-dev.0.1 <3.0.0'
dependencies:
flutter_web: any
flutter_web_ui: any
stopper: ^ 1.0.1
dev_dependencies:
build_runner: ^ 1.4.0
build_web_compilers: ^ 2.0.0
dependency_overrides:
flutter_web:
git:
url: https://github.com/flutter/flutter_web
path: packages / flutter_web
flutter_web_ui:
git:
url: https://github.com/flutter/flutter_web
path: packages / flutter_web_ui
provider:
git:
url: https://github.com/kevmoo/provider
ref: flutter_web
When I run 'pub dev', an error occurs while resolving the package stopper. Then I tried to open github from the package stopper (https://github.com/aryzhov/flutter-stopper), after that I checked the files in the lib folder. There I found a file called stopper.dart. It turns out that in the file, still using
import 'package: flutter / material.dart';
So that makes my pubspec error. Because the code should be replaced with
import 'package: flutter_web / material.dart';
Therefore, I tried to outsmart the problem by removing the dependency stopper on pubspec.yaml, then I created a stopper.dart file manually, then I saved it in the lib/mypackages folder. After that, I import stopper.dart from the lib/mypackages folder (it's no longer through the package).
The package stopper is just one of the packages that I use on my Android project. Actually there are many other packages that have the same problem as the package stopper. The point is I have to create the package files manually, then I change "package: flutter / ..." to "package: flutter_web /" manually, then I can import them.
What I want to ask, is there a more elegant and simple way?
Hi the instruction you are following is from an old repository here. As you can see this is discontinued. You can find the informaiton in the REadme.
Instead you should follow the instructions in this page. Read it once carefully and I would suggest to keep a backup of your main project and work on a copy.
First you will have to enable the flutter-web using flutter config --enable-web.
Then you will have to run flutter create .
I am playing around with non-nullable types and added this to my analysis_options.yaml:
analyzer:
enable-experiment:
- non-nullable
I have a code-generator that is utilising the nullability extension. Visual Code is fine with my code.
Now, I try to run:
flutter packages pub run build_runner watch
I get this error message:
[SEVERE] Failed to snapshot build script .dart_tool/build/entrypoint/build.dart.
This is likely caused by a misconfigured builder definition.
[SEVERE] xyz.dart:95:7: Error: This requires the 'non-nullable' experiment to be enabled.Try enabling this experiment by adding it to the command line when compiling and running.
How can I pass --enable-experiment:non-nullable to flutter packages pub run?
The same happens if I run:
flutter build ios
I get the error message:
lib/main.dart:61:26: Error: This requires the 'non-nullable' experiment to be enabled.
Try enabling this experiment by adding it to the command line when compiling and running.
So, same question: How can I pass --enable-experiment:non-nullable to flutter build?
This problem was occured for me after upgrading the Flutter.
I solved it by cleaning and upgrading the project dependencies again.
Run the below commands in the root directory of your project:
flutter clean
flutter packages pub upgrade
flutter pub run build_runner build
Also as others said, please make sure your sdk version in the pubspec.yaml is compatible with your flutter sdk version.
For null safety to work,
environment:
sdk: ">=2.12.0 <3.0.0"
should be this version at least.
then run flutter clean
and flutter pub get it will work.
Try
flutter clean
This is worked for me!
Depending on what you're doing, sometimes it's as simple as changing the environment in your pubspec.yaml file to update the lower end, ie change a lower end like
environment:
sdk: ">=2.0.0 <3.0.0"
to
environment:
sdk: ">=2.6.0 <3.0.0"
or
environment:
sdk: ">=2.7.0 <3.0.0"
This has worked for the various things that cause this error (using spread syntax in latest version of flutter and dart will also cause this), but I don't need the older environments.
A simple fix for me was to ensure that the analysis_options.yaml is in
the root folder. In my case, it was in the lib folder and none of the
experimental features worked until I moved the file to the same folder
as pubspec.yaml. Other things that can happen include updates that
make the experimental feature no longer required so updating to the
latest version on the flutter master channel may be useful in addition
to verifying the file location. Haven't been able to get the command line
running with this option, however.
Dart Reference
Example of Analysis Options File
I upgraded my Flutter SDK and now my project is broken. I need to basically revert back to a Flutter SDK which uses Dart 1.x.
I tried the following in the pubspec.yaml,
environment:
sdk: ">=1.19.0 <2.0.0"
flutter: "^0.1.2"
dependencies:
flutter:
sdk: flutter
but now the project just simply doesn't build.
Running "flutter packages get" in binformed...
Package binformed requires Flutter SDK version ^0.1.2 but the current SDK is 0.2.5-pre.38.
pub get failed (1)
Do i need to uninstall the SDK and reinstall it?
Flutter is versioned using git. Changing the Flutter version is as simple as changing git branch.
There are 2 different ways:
flutter channel <branch> (example: flutter channel stable)
This command is used to change between branches – usually stable/dev/beta/master.
We can also put a specific commit id from git.
flutter downgrade <version> (example: flutter downgrade v1.2.1)
This command will use a specific version number.
You can have the list of the available version numbers using flutter downgrade or here
After this, run any Flutter command (such as flutter doctor), and Flutter will take care of downloading/compiling everything required to run this version.
Run the following command to see a list of available versions.
flutter version
Then choose a version you want to switch to by running
flutter version v1.2.1
To undo and revert back to stable
flutter channel stable
flutter upgrade
In the Flutter install directory execute
git checkout v0.1.9
then run
flutter doctor
You can check which versions are available in the Flutter GitHub repository https://github.com/flutter/flutter
There is an open feature request to make this easier https://github.com/flutter/flutter/issues/14230
Don't use flutter version vX.X.X, use flutter downgrade instead.
Warning: "flutter version" will leave the SDK in a detached HEAD state. If you are using the command to return to a previously installed SDK version consider using the "flutter downgrade" command instead.
So, you should use
flutter downgrade
Edit:
If there had been no previous versions installed, the above command would fail. So, if you have a specific version of Flutter that you’d like to switch to, you can use the flutter version command:
flutter downgrade v1.17.0
You can find list of versions here
To downgrade there are many deprecated commands.
The two that actually work, and I've tested them, are:
flutter downgrade v[flutter build version]
For instance:
flutter downgrade v1.22.6
And the other one: go to your flutter sdk folder, that is your folder named "flutter" and inside it open a new terminal. Then type:
git checkout [flutter build version]
For instance:
git checkout 1.22.3
Then do flutter doctor and you'll confirm you switched correctly.
You can check the versions on: https://flutter.dev/docs/development/tools/sdk/releases?tab=macos
And for details at: https://flutter.dev/docs/release/breaking-changes
If you happen to want to switch channel, just do:
flutter channel [channel]
For instance (choose one of master, stable, dev, beta):
flutter channel stable
And if you want to upgrade again:
flutter upgrade
Inorder for a proper downgrade to any version.
Change to Dev mode
flutter channel dev
flutter downgrade v(type your version number) eg below.
flutter downgrade v2.0.6
This worked for me !
Go to the terminal and type the specific version number, for eg -
flutter downgrade v1.22.3
Then just press enter.
After fetching the files from the internet, it will ask,
Downgrade flutter to version 1.22.5
? [y|n]:
Type y and it will downgrade to the specific version.
Restart the IDE for the settings to take place.
To solve these errors:
$ flutter version
Could not find a command named "version".
$ flutter downgrade v1.22.6
There is no previously recorded version for channel "stable".
Delete old flutter folder
Download the archive and unzip instead of deleted flutter folder
OR
cd "$(dirname $(which flutter))" then
git checkout . (optional)
git pull origin (optional)
git checkout v1.22.6
flutter doctor
p.s.
Don't forget to restart your android studio
At the moment, the easiest way to manage flutter versions is through fvm.
Install fvm
brew tap leoafarias/fvm
brew install fvm
Install your version
fvm install x.x.x
Install your version globally (if desired)
fvm global x.x.x
Here's a link to the app guide
https://fvm.app/docs/getting_started/installation
Just use flutter downgrade v2.8.0
then flutter ask for confirmation
Downgrade flutter to version 1.22.5
? [y|n]:
Type y for Yes to confirm changes
Download Flutter SDK release: flutter_windows_1.17.0-stable: https://flutter.dev/docs/development/tools/sdk/releases
Replace the existing Flutter folder to this version
Make sure that environment variables and Flutter + Dart Settings on your IDE
are still tied to this folder/path
Just flutter downgrade is enough, it will downgrade to previous stable version.
I find it a little tough to switch (upgrade/downgrade) to a specific Flutter version from the command line. Some of the answers here are outdated.
I prefer to download the SDKs for different versions from here manually.
Let's say I download 2.0.1, 2.0.5 and 2.0.6.
2.0.1 is the current Flutter SDK version for me.
To switch to 2.0.5, delete the current Flutter SDK (the one with the blue icon) and unzip flutter_macos_2.0.5-stable.zip. Then run flutter clean followed by flutter doctor to confirm that everything worked correctly.
This has the benefit of not having to change any paths or having to re-download the entire SDK every time you want to switch.
On macOS, if you get system warnings for not being able to run dart or gentool, then press Allow anyway under System Preferences > Security & Privacy
The simplest way to change your flutter version is to:
Navigate to this link and download the flutter version you want.
Extract the files and replace your older flutter directory with them.
If you were using flutter already then no need to redefine the PATH, else, make sure that environment variables are still tied to this folder/path.
Run flutter --version or flutter doctor to check that everything went ok.
I found 2-steps easy solution to migrate to any specific version of Flutter.
Navigate to Flutter repo path (Yes, the one we download from official website and unzipped it) in a terminal
Run the following command : git checkout 2.10.5 && flutter precache
Note: Verify & change the Flutter version from here
Open Terminal and Navigate to Flutter folder
Run the following command with the Flutter version you want to switch to:
git checkout 2.10.5 && flutter precache
Reference: https://github.com/flutter/flutter/issues/64238#issuecomment-678605514
All the answers are outdated and not working after the release of flutter 3.0.
My solution is somewhat complicated but will still work in May 2022 and after.
I will show you how to downgrade from flutter 3 to Flutter 1.22.6.
the first step is to locate where you have to install flutter files when you have installed them for the 1st time. Like mine is located in c:\src\flutter.
Cut the flutter folder and paste it somewhere. (note:- you have shutdown your android studio/vs code if running)
go to Flutter SDK releases and download the desired flutter version you want. I choose flutter 1.22.6 for windows.
now extract the downloaded flutter zip and paste in c:\src\flutter (or wherever your flutter was installed previously). (don't worry if you're thinking that your Environment Variables path will change, so that is not true, it will still work. you don't have to change anything in Environment variables)
After pasting the flutter extracted folder open android studio and go to File/Setting/language and framework/flutter and correct the Flutter SDK path to C:\src\flutter.(as shown in the image).
6. Now press apply and run flutter --version
if you are using brew (macos)
you can create rb file and use brew to install or downgrade flutter
create file with name flutter.rb
cask "flutter" do
version "2.2.0"
url "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_#{version}-st$
verified: "storage.googleapis.com/flutter_infra_release/"
name "Flutter SDK"
desc "UI toolkit for building applications for mobile, web and desktop"
homepage "https://flutter.dev/"
livecheck do
url "https://storage.googleapis.com/flutter_infra_release/releases/releases_macos.json"
regex(%r{/flutter[._-]macos[._-]v?(\d+(?:\.\d+)+)[._-]stable\.zip}i)
end
auto_updates true
binary "flutter/bin/dart"
binary "flutter/bin/flutter"
end
then use brew install ./flutter.rb to install flutter or downgrade flutter version
This solutions works in 2021
Go to your flutter SDK folder, which is your folder named "flutter" and inside it open a new terminal. Then type:
git checkout (your flutter version)
then,
run flutter doctor
After this check your version.
To downgrade your flutter version:
Run flutter downgrade v2.5.3 or whatever flutter version you want from here.
If it resulted in any error like
There is no previously recorded version for channel "stable".
or that there is no previous version,
then, make sure to switch to the correct branch {stable, master, dev, beta} using the following command:
flutter channel master
Finally, Run flutter doctor to check that everthing went well.
These are the flowing step to downgrade any flutter version:
Step 1:
cd [your flutter sdk path]
Step 2:
git checkout [ enter your version ref ]
To get ref goto the url and copy your desired version ref.
https://docs.flutter.dev/development/tools/sdk/releases
Suppose I downgrade version 3.3.2
Step 3:
flutter doctor or flutter --version
Downgrade to a specific version on stable channel
Locate flutter path:
whereis flutter
On flutter folder execute
# clean the repo
git clean -fdx
git reset --hard
git fetch --all --prune
# list available tags starting with 2.10
git tag | grep 2.10
# checkout to stable on tag
git checkout stable
git reset --hard 2.10.5
Finally download the flutter tools
flutter doctor
The easiest way is to go to your flutter sdk, if you're on Linux open terminal and run flutter sdk-path then cd to the sdk path.
run git checkout <ref_of_sdk_you_want>. access the sdk versions here. after the switch, run flutter doctor and restart your IDE, that's it.
You can switch between versions using this way.
Steps to change the Flutter version is as simple as changing the git branch.
flutter channel <branch> (example: flutter channel stable)
This command is used to change between branches – usually stable/dev/beta/master. We can also put a specific commit id from git.
flutter downgrade <version> (example: flutter downgrade v1.2.1)
This command will use a specific version number. You can have the list of the available version numbers using flutter downgrade
After this, run any Flutter command (such as flutter doctor), and Flutter will take care of downloading/compiling everything required to run this version.