Flutter:未找到 SDK 位置。使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置
Posted
技术标签:
【中文标题】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 【发布时间】:2020-07-20 00:56:59 【问题描述】:我正在使用不同的方式构建应用程序,两种方法有效,一种失败。
方法: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
,我会在其他包中开始出现错误,所以这个包肯定不是问题。我仔细检查了我有
local.properties
、gradle.properties
和 settings.gradle
在我的 android
根文件夹中。
而我的其他项目似乎也奏效了。
【问题讨论】:
这能回答你的问题吗? Flutter Release apk is not working properly? @MidhunMP 我试过了,没用。 【参考方案1】:我在使用 file_picker 插件时遇到了这个问题,只需将 android/build.gradle 中的 gradle 版本升级到以下版本之一即可:
3.3.3
3.4.3
3.5.4
3.6.4
4.0.1
我点击了这个链接:file_picker troubleshooting
【讨论】:
我已经在使用最新的gradle版本4.1.1
你能发布你的android/build.gradle和android/app/build.gradle
为我工作,版本 3.5.4。谢谢!【参考方案2】:
有时您会看到一个 SDK 问题来自需要最新 gradle 才能实际运行的插件。
即使我的 SDK 设置正确,我也遇到了这个问题:
未找到 SDK 位置。使用 sdk.dir 定义位置 local.properties 文件或使用 ANDROID_HOME 环境变量。
更多信息来自:
Here is an example of a plugin failure that will lead to an sdk and query error flutter_file_picker:
Build is failing with unexpected element <queries> found in <manifest>.
升级 gradle:
要在 Flutter 项目中升级 gradle,File -> Open 并选择作为 Flutter 应用一部分的 Android 文件夹。完成加载后,它将提示您将 gradle 升级到最新版本。这将解决问题
【讨论】:
谢谢!我在文件选择器上遇到了这个问题。 @Petro 谢谢,我会看看它并接受答案:) 很高兴我能帮上忙 :) @Petro 对不起,我没有帮忙,我已经在使用最新版本的 gradle,它是4.1.1
。【参考方案3】:
我遇到了同样的问题。 在我的情况下,一个过时的包是问题的原因
【讨论】:
【参考方案4】:我建议清除 android-studio-dir 和 android-sdk 设置,让 Flutter 自动检测它们的路径:这对我有用。
flutter 配置 --android-studio-dir=""
flutter 配置 --android-sdk=""
【讨论】:
在哪里可以找到这些配置?【参考方案5】:要解决此问题,请尝试将 Gradle 版本升级到最新版本。
为此,请转到 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
【讨论】:
【参考方案6】:我遇到了同样的问题,但是有一个文件在里面创建
build\app\outputs\apk\release\app-release.apk
安装后可以正常工作,没有任何问题。即使我不知道为什么会发生这种情况,但它确实有效。
【讨论】:
在您提到的目录中创建的文件只有在您已经构建了发布版本的情况下才能使用。只有你能说出你用哪种方法来做到这一点。我不明白你的评论之类的答案是如何回答这篇文章的。【参考方案7】:所以在我的情况下,我感觉正在发生的事情是,由于新包或其他原因,新版本和现有版本之间存在冲突,所以我这样做了
flutter clean
并尝试再次构建,瞧它成功了。
【讨论】:
每个人都不像你那样幸运.. 也没有为我工作..【参考方案8】:在android\gradle.properties
中确保android.enableR8
未设置为false
。它可能只是与您的 apk 大小有关,而不是特定的包。
【讨论】:
【参考方案9】:我遇到了同样的问题。这是我如何解决的。
确保您在 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
【讨论】:
【参考方案10】:在 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保存,然后回车
之后重启终端并输入以下命令
source ~/.bash_profile
最后输入
echo $ANDROID_HOME
我必须在我的项目文件夹上执行此操作,然后它对我有用。
【讨论】:
以上是关于Flutter:未找到 SDK 位置。使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置的主要内容,如果未能解决你的问题,请参考以下文章
未找到 SDK 位置。使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置
React Native - java.lang.RuntimeException:未找到 SDK 位置。在 local.properties 中使用 sdk.dir 定义位置
Android:未找到 SDK 位置。使用 local.properties 文件中的 sdk.dir 或使用 ANDROID_HOME 环境变量定义位置