Move Root Folder of Flutter Project - flutter

When working on a Mac with Flutter in Android Studio (Arctic Fox 2021.3.1 Patch 4 and XCode 13.1 and/or 13.2):
If you move the root folder of your Flutter project using Finder, then open it in Android Studio and run it, the original folder location is still re-written (multiple sub folders with empty contents, usually, but not always).
Also, the moved project will no longer build from within XCode.
This means that if you don't know the final desired location for your project at the time you create it, you will not be able to move it without weird stuff happening.
How can you move a Flutter project that was created with Android Studio without it having weird side-effects?
More info on how to reproduce:
Close all IDEs
Open Android Studio
Using Android Studio, create a new default FLUTTER project using Java as the Android code choice
Using Android Studio, run this project on an Android Emulator
Using Android Studio, run this project on an IOS simulator
Using Android Studio, open the project in XCode (right-click ios folder and select Flutter\Open project in Xcode)
Using XCode, run the project on an IOS simulator
[everything should have worked so far]
Close all IDEs
Using Finder, move the project folder to a new location that is at the same depth as its current folder, but with a different parent folder. Meaning if current location is: [root]/x/y/a/my_project_original, the destination would be: [root]/x/y/b/my_project_copy
delete the original folder and remember where it was
Using Android Studio, open the project from its new location
Using Android Studio, open the project in XCode (right-click ios folder and select Flutter\Open project in Xcode)
Attempt to run on IOS simulator
[observe error - "Command PhaseScriptExecution failed with a nonzero exit code" // "file not found exception"]
Using Finder, check to verify original folder location has NOT been re-written
Using Android Studio, run the project on Android emulator
[observe that original folder has been re-written!]

Here are the steps I follow to move a project's location on my mac :
Close your project on Android Studio (File > Close Project)
Close Android Studio
Move your project to your new location
Open Android Studio
Delete your project from the Recent Projects (on the list of Recent Projects, click on the Settings icon on the right, and "Remove from recent projects")
Click on "Open" and select your project in the new location.
Delete the .idea file and build/ folder
The steps should be the same within XCode (in the main window, remove the old location from your recent projects, and Open the new location)

You can move your Flutter project anywhere, as long as you don't move the files inside the project relative to each other.
A note about pod install: If you are immediately running from Xcode, you need to run pod install inside the ios folder after adding a plugin to your pubspec.yaml. If you run flutter run or use Android Studio to run it, that will run pod install for you automatically. However, you don't have to run pod install after moving the project, I've just tested it.
If you move the root folder of your project using Finder, then open it
in Android Studio and run it, the original folder location is still
re-written (multiple sub folders with empty contents, usually, but not
always).
This only happens if you kept Android Studio open when moving the files. You shouldn't open the old project reference in Android Studio, you should open the project using File > Open....
Also, the moved project will no longer build from within Xcode.
If you provide the errors, that will help us help you.
How can you move a Flutter project that was created with Android Studio without it having weird side-effects?
I have not found any side effects of moving a Flutter project. Quit Android Studio if it is running, and open it using File > Open.... Or if you are in terminal, run (if installed using Jetbrains toolbox) open -a ~/Applications/JetBrains\ Toolbox/Android\ Studio.app/

Related

How to build release Flutter project using Android Studio

I cannot build my project using Android Studio. I create project using console, then edit at VSCode. Now I open it at Android Studio and I cannot build release. Why this command Build bundles (green arrow) is not available?
Try to hover on Flutter name in that list or click on arrow button then build apk then create your .apk file
Or run below command
flutter build apk --release
See below image:
See your apk here-> directory:\your_project_name\build\app\outputs\flutter-apk
Open The Android Studio and also open your project.
First you click the build->Flutter->build APK.
Second you get the massage path.
Third you get the build folder then you click the
build->app->outputs->flutter-apk->app-release.apk.
You can see the image for the 3 steps to Build Apk:
Flutter project consist of subprojects:
/MyProject
/iOS - (iOS subproject)
/android - (android subproject)
When I open project "MyProject" I see:
But when I open android submodule/subproject "MyProject/android" I see another options under "Build":
So solution is:
If You want build Android package for Google Play store, You must open in IDE Android submodule, for example solder /MyProject/android
Case with Xcode, iOS and AppStore package looks similar - it is important to open iOS submodule, not whole MyProject.

Why can't migrate my flutter project to androidx?

I have a flutter project I want to migrate to AndroidX. The docs say I should open Android Studio and click "Sync Project with Gradle Files" but that option is disabled for me as seen in the following picture:
how can I enable this option and migrate to AndroidX?
Open Android Studio.
Select Open an existing Android Studio Project.
Open the android directory within your app.
Wait until the project has been synced successfully. (This happens automatically once you open the project, but if it doesn’t, select Sync Project with Gradle Files from the File menu).
If you are asked to backup the project before proceeding, check Backup project as Zip file, then click Migrate. Lastly, save the zip file in your location of preference.
The refactoring preview shows the list of changes. Finally, click Do Refactor:
That is it! You successfully migrated your project to AndroidX.
Select Migrate to AndroidX from the Refactor menu.

flutter inspector doesn't work for the app from my github repository

The flutter inspector doesn't work (not showing widgets tree) for my project (it's cloned from github).
To figure out what's wrong in my project, I generated new flutter applications, and the behavior is weird.
When I generate a new flutter application (flutter's default new flutter project) in a NEW directory, flutter inspector works ok.
If I make a new flutter application INSIDE my project directory (let's say myproject/temp), the inspector doesn't show the widgets tree.
If I delete my project directory (myproject), make a directory with the same name (myproject), and generate a new flutter application inside the directory (myproject/temp), then the inspector works ok.
If I make 'myproject' directory manually (mkdir myproject), copy all myproject files to myproject/ (cp myproject_backup/* myproject/), and generate a new flutter application inside myproject/temp, then the inspector doesn't work.
If I make 'myproject' directory manually (mkdir myproject), generate a new flutter application inside myproject/temp, copy all myproject files to myproject/ (cp myproject_backup/* myproject/), then the inspector doesn't work.
Can the other files in the same folder (myproject/*) affect the behavior of the flutter project (esp. inspector)?
What else can go wrong in this case?
Here's my setting:
Flutter: Channel stable, v1.17.1, on Mac OS X 10.15.5
Dart: version 2.8.2
Android SDK version 28.0.3
Android Studio (version 4.0)
Flutter plugin version 46.0.2
Dart plugin version 193.7361
My app is inside bazel WORKSPACE, that was the problem.
If I delete WORKSPACE file, the inspector works fine.

Cannot do new Image Asset in res folder

I want to do a new Image Asset in my res folder in my flutter project, to change the layout of my app icon. However when i right click on the res folder and chose New -> 'Image Asset' is no longer an option in my Android Studio... Anyone who knows how to fix this? I've been able to do it before. I've updated the Flutter plugin, but that didn't make any difference.
I'm new to flutter as well and as part of following the flutter course, ran into the same issue.
The following solution is with android studio version
Android Studio Arctic Fox | 2020.3.1 Patch 3
Build #AI-203.7717.56.2031.7784292, built on October 1, 2021
Runtime version: 11.0.10+0-b96-7281165 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 12.0.1
GC: G1 Young Generation, G1 Old Generation
Memory: 1280M
Cores: 12
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: Dart, io.flutter
I found the 'Image Asset' option by following the below-listed steps
Right-click on the 'res' folder
Hover over 'Flutter' option and click 'Open Android module in Android Studio'
When a pop-up asks 'Where would you like to open the project?', select 'New Window'
Once the project opens in new window, expand the app directory to find 'res' folder.
Right-click on 'res' folder, click 'new' and you'll now see the Image Asset option
I want to clarify these answers, it's all there, but it's too confusing: You must create an images folder in the project. In most of my projects, I would create an assets folder, and then a subfolder of images. This won't work, must be a top level images folder.
Additionally, if you start your project in VS code. You have to start the project in Android Studio. You can always just start a new project, do your icon work and copy the folders over to your actual project.
But TWO things seem to interfere: If you don't have an images folder and if you did anything in VS code. I was guilty of both, and had to unwind both issues.
Start a new project in Android Studio
Create an images folder.
Add it to your pubspec.yaml in assets: Mine would look like this:
assets:
assets/images/
assets/sounds/
assets/
images/
Now you'll be able to right click on the res folder and see new image asset.
Do your icon work.
Copy the res folder over to your actual project.
Want to iterate: I put an image in the top level images folder, but I don't think it even needs that. It is looking for the folder, and you must have it. Somewhere in the code, a top level images folder is a condition to giving the image option.
Starting in Android studio will give the option, but it's greyed out.
Having the images folder is the magic key that opens the hidden door.
Go to menu file > open.... select android folder and click open.
wait until it finished loading then try to right click res folder again.
The Image asset menu will be shown.
discussion on this issue.
https://github.com/flutter/flutter-intellij/issues/3512
open android studio File->Open folder->navigate to your flutter project and select the Android folder. Wait for it to sync, then navigate inside the Android studio folder and find the res folder right click on it and choose New you will see the Image asset studio.
In the flutter project, the option won't be available...You can right-click on the android folder and go to the flutter menu and click the open project in Android Studio Option...Then the android project of your flutter project will be opened as an individual project...There you can use all the android studio's native functionalities.
It was not working for me as well. I cleared the build using flutter clean and the option was available after that.
Right click in res>Flutter>Open Android module in Android Studio
You will be able to see the image asset option after android module has opened in android studio.

Error: Entrypoint isn't within the current project

Unable to run flutter from Android Studio not detecting flutter project its shows Error: Entry point isn't within the current project
Every time restart android studio same error message shows
Delete the .idea folder inside the root of the flutter project and restart Android Studio.
Refer to this question: What is the .idea folder? and make your decision if it's safe or not to delete .idea folder.
Click on File-> Project Structure -> Module then add root folder of
your project then it will detect its a flutter app and then build and
work
its work for me
Reference: https://github.com/flutter/flutter-intellij/issues/2307
1) make sure flutter and dart sdk paths are properly configured from
File-> Settings..->Languages and Frameworks
as well as make sure Dart support is enabled for project module from Dart Option
2) at the end select File->Invalid caches and restart
3) so after 2nd step you may get in File->Project Structure.. option from there Select Modules then just simply add only root folder path of your flutter project and repeat just above 2nd step
for me this worked
Syncing your project with gradle files will solve it:
You can sync the files with Gradle, within the File menu.
Else You can re-include the files/project root folder inside the File Menu.
File -> Project Structure -> Module
And then add the root folder of the project(with + icon), then it will detect that it's a flutter app again, and then build and work again.
Try delete .idea folder inside project folder and Invalidate & Restart Android Studio.
For me my project was missing the pubspec.yaml file, it was deleted by mistake , instead of warning about the missing file , I got this error
This problem happened to me
I solved it this way
Go to the Android Studio track
I have this way
C:\Users\mustafamaxL\.AndroidStudio4.0\system
Remove folder (caches)
Then, start Android Studio again
If your ios, android, or lib folders are missing, it typically means there is something wrong with your project structure.
To fix it, delete the .idea folder in the root of your project and then restart Android Studio. If you're using a Mac, you can display the hidden .idea folder by pressing Command+Shift+Dot in Finder.
The .idea folder will be automatically regenerated and everything should be back where it belongs.
See this post for the original solution.
Click Content Root Close Icon and Remove Android Folder.
Fix it to me.
I faced the same issue today and tried other solutions here but it wasn't worked at all.
In my case I deleted three folders that is android, ios, and .idea from project directory, then restarted android studio and finally I gave this command in Android Studio's Terminal.flutter create . to create appropriate directories (i.e., android & ios).
Now it is working fine.
Note: Before deleting the android / ios directory please make a backup of these directories only if you previously gave native code in android / ios directory.
Hope this solution will helpful if others will not work.
The .idea folder will also be deleted on Linux. When Andriod Studio opens, click terminal at the bottom in Android Studio. Then type remove -r .idea/ in the terminal and press enter. After deleting, close and restart Android Studio.
You might need to update the Gradle version. Or change the minimum android SDK version.
Here is worked for me:
Update Gradle / minSdkVersion version
Reopen the project but at the directory user/StudioProjects/yourFlutterApp/android.
After it is opened it will load some packages (see right bottom), which will take some time.
It will ask you to update the Gradle version (right-left corner) or go under File>Project Structure Project you can set a higher Gradle version and under Modules variables of your build
Now you can sync your project with Gradle files
After configuration, you might need to restart your project with File>Invalid Caches/Restart....
I have created 2 folders inside lib's folder for my *pages* and *widgets*.
Getting the main.dart file back to the **lib folder** will do the trick
I'm currently in Android Studio Electric Eel.
I've done all of the suggested solutions above, but nothing works.
Turns out the project is not detected as a Flutter project. So what I do to resolve this issue is to remove gradle-related files from the root folder:
build.gradle
gradlew
gradlew.bat
gradle/