我已经使用 Python 创建了一个简单的 Flet 应用程序,现在是时候将 Python 应用程序构建到 APK 文件中以在 Android 设备上运行了。但是,我在构建目录中找不到 .apk 文件。
观看一些解释如何使用
flet build
命令构建 APK 的视频后,我注意到不同的输出结构。
通常,运行
flet build apk
后,其他结构如下:
|项目根目录 └──── 建造 └──── apk └────release.apk
我有一个完全不同的结构(它非常广泛,所以如果需要的话我会附上屏幕截图):
|项目根目录 └──── 建造 └──── 颤动 | └──── 安卓 | └──── 应用程序 | └──── ... | └──── 站点包 └────arm64-v8a(这是一个空目录)
我在任何地方都找不到 .apk 文件。
运行
flet build apk
命令后,这是输出:
Created Flutter bootstrap project from gh:flet-dev/flet-build-template with ref 0.25.1 ✅
Customized app icons and splash images ✅
[22:46:13] Generated app icons ✅
[22:46:18] Generated splash screens ✅
[22:46:50] Running package command
Extra PyPi indexes:
Creating asset directory: C:\Users\username\Desktop\Code\Python\Tests\MyApp\build\flutter\app
Created temp directory: C:\Users\username\AppData\Local\Temp\serious_python_temp2448bdf8
Copying Python app from C:\Users\username\Desktop\Code\Python\Tests\MyApp to a temp directory
Cleanup app
Configured Android/arm64-v8a platform with sitecustomize.py
Installing [-r, C:\Users\username\Desktop\Code\Python\Tests\MyApp\requirements.txt] with pip command to C:\Users\username\Desktop\Code\Python\Tests\MyApp\build\site-packages\arm64-v8a
Downloading Python distributive from https://github.com/indygreg/python-build-standalone/releases/download/20240909/cpython-3.12.6+20240909-x86_64-pc-windows-msvc-shared-install_only_stripped.tar.gz to a build directory
Extracting Python distributive
ERROR: Could not find a version that satisfies the requirement flet-desktop==0.25.1 (from versions: none)
ERROR: No matching distribution found for flet-desktop==0.25.1
Error building Flet app - see the log of failed command above.
[22:46:55] Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.24.5, on Microsoft Windows [Version 10.0.26100.2314], locale en-US)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.12.0)
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.12.0)
[!] Android Studio (not installed)
[√] Connected device (2 available)
[√] Network resources
[√] Connected device (2 available)
[√] Network resources
[√] Network resources
! Doctor found issues in 3 categories.
我已经安装了 Flutter SDK 并将其与 Java SDK 一起添加到我的系统变量中。
但是,日志显示错误:“找不到满足 flet-desktop==0.25.1 要求的版本。”当我运行
pip install flet-desktop==0.25.1
时,表明所有要求都已满足。
好吧,在我把头撞到墙上几个小时后,我找到了对我有用的解决方案。
主要问题是 Flet 开发人员更改了
flet build
命令生成的结构。如果您想要只有两个目录的类似结构,请返回flet==0.24
。
此外,安装 Flutter SDK 后,打开终端并运行命令
flutter doctor -v
。问题是我没有构建应用程序的所有 Flutter 要求,例如未安装 Android Studio、未接受 Android 许可证以及未安装 Chrome(我很确定这是可选的,但其他则不是)。确保您拥有所有带有绿色勾号的东西。
完成所有这些后,我遇到了不同的问题。
flet build
命令正在运行,但没有创建任何构建目录。如果是这种情况,请运行命令 flet build apk -vv
。它详细显示了构建过程,我发现我的 requirements.txt
文件存在一些问题。解决这个问题也有助于解决问题。
通过在终端中键入
start ms-settings:developers
或转到 Settings > System > For developers > Developer Mode
来启用 Windows 中的开发人员模式。
建议使用 Windows 10 或更高版本。
在终端中运行
$PSVersionTable
命令并检查您的 PSVersion
是否为 5.0 或更高版本。
这些是我必须做出的所有更改才能在 Windows 上运行。我希望它也适合你。