![](/img/trans.png)
[英]Android: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable
[英]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.properties
, gradle.properties
和settings.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.