繁体   English   中英

Flutter:未找到 SDK 位置。 使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置

[英]Flutter: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable

我正在使用不同的方式构建应用程序,两种工作但一种失败。

方法:1(工作)

flutter build appbundle 

方法:2(工作)

在 Android Studio 中打开模块,然后选择

Build > Generate Signed Bundle/APK... > filling all info afterwards

在这种情况下,我可以同时构建 app bundle 和 APK 文件。


方法:3(不工作)

flutter build apk

我收到此错误:

FAILURE:构建失败并出现异常。 * 出了什么问题:配置根项目“android_intent”时出现问题。

未找到 SDK 位置。 使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置。


如果我删除android_intent ,我开始在其他包中出现错误,所以肯定 package 不是问题。 我仔细检查了我有

local.propertiesgradle.propertiessettings.gradle在我的android根文件夹中。

我的其他项目似乎有效。

我在使用file_picker插件时遇到了这个问题,只需将 android/build.gradle 中的 gradle 版本升级到以下版本之一:

3.3.3

3.4.3

3.5.4

3.6.4

4.0.1

我点击了这个链接: file_picker疑难解答

有时您会从需要最新 gradle 才能实际运行的插件中看到 SDK 问题。

即使我的 SDK 设置正确,我也遇到了这个问题:

未找到 SDK 位置。 使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置。

更多信息来自:

下面是一个插件失败的例子,它会导致 sdk 和查询错误flutter_file_picker

Build is failing with unexpected element <queries> found in <manifest>.

升级 gradle:

To upgrade gradle in a flutter project, File -> Open and select the Android folder which is part of your Flutter application. 完成加载后,它将提示您将 gradle 升级到最新版本。 这将解决问题

我有同样的问题。 就我而言,过时的 package 是问题的原因

我建议清除 android-studio-dir 和 android-sdk 设置,让 flutter 自动检测它们的路径:这对我有用。

flutter 配置 --android-studio-dir=""

flutter 配置 --android-sdk=""

因此,在我的情况下,我觉得正在发生的事情是由于新的 package 或其他原因,新版本与现有版本之间存在冲突,所以我做了flutter clean并再次尝试构建,瞧它工作了。

要解决此问题,请尝试将 Gradle 版本升级到最新版本。

为此,将 go 更改为android/gradle/wrapper/gradle-wrapper.properties ,然后将distributionUrl的版本替换为最新的 Gradel 版本。

例如:

升级:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip

至:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip

我遇到了同样的问题,但是有一个文件创建在

build\app\outputs\apk\release\app-release.apk

安装后可以正常工作,没有任何问题。 即使我不知道为什么会发生这种情况,但它确实有效。

android\gradle.properties确保android.enableR8未设置为false 它可能只与您的 apk 大小有关,而不是特定的 package。

我遇到过同样的问题。 这是我如何解决的。

确保在 android 文件夹中有一个名为 local.properties 的文件,并确保它具有正确的计算机用户名,例如:

sdk.dir=C:\\Users\\YOURUSERNAME\\AppData\\Local\\Android\\Sdk
flutter.sdk=C:\\src\\flutter
flutter.buildMode=debug
flutter.versionName=1.0.5
flutter.versionCode=10

对于 MAC,路径应该是这样的

sdk.dir = /Users/YOURUSERNAME/Library/Android/sdk

如果这不起作用,请在“环境变量”中添加 ANDROID_HOME 变量为 C:\Users\YOURUSERNAME\AppData\Local\Android\Sdk

在 mac 操作系统中。 打开终端并运行以下命令

nano ~/.bash_profile

使用您的用户名在终端中键入以下值

export ANDROID_HOME="/Users/<user_name>/Library/Android/sdk"
export ANDROID_TOOLS="/Users/<user_name>/Library/Android/sdk/tools/"
export ANDROID_PLATFORM_TOOLS="/Users/<user_name>/Library/Android/sdk/platform-tools/"

并通过 control+X 保存它们,然后 Enter

之后重新启动终端并输入以下命令

source ~/.bash_profile

最后输入

echo $ANDROID_HOME 

我必须在我的项目文件夹上做它然后它对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM