Expo 构建 EAS - 本地 - 未找到 SDK 位置

jav*_*web 7 android react-native expo expo-build expo-eas

当我使用博览会上名为EAS 的新构建工具在本地构建我的 React Native 应用程序时:
eas build --platform android --local
我收到错误:

未找到 SDK 位置。使用 ANDROID_SDK_ROOT 定义位置

我找到的所有答案都建议local.propertiesandroid目录中创建文件并在其中设置sdk.dir,但这与旧的构建工具有关expo build...另一个选择是简单地在系统级别定义环境变量,这是我试图避免的。

所以我想知道如何在本地反应本机项目的某种类型的配置文件中执行此操作。我无意中找到了答案,所以我分享以下知识

顺便说一句,如果您正在寻找最终捆绑包的默认构建路径在哪里 - 它很可能被转储到项目根目录中(如果需要,请不要忘记刷新文件)。

jav*_*web 15

长话短说

项目根目录eas.json=> build=> production=>"env": { "ANDROID_SDK_ROOT": "/path/to/AndroidSDK" }

第 1 步:找到 Android SDK 的路径

一般问题是 EAS 构建缺少 Android SDK 的路径,因此首先您需要找到正确的路径,
Android SDK 不必位于默认路径中
,但如果您有以下路径之一,则可以接受它并跳转到步骤 2替换YourUserName为您的用户名):
Windows: C:\\Users\\YourUserName\\AppData\\Local\\Android\\sdk
Mac: /Users/YourUserName/Library/Android/sdk
Linux: /home/YourUserName/Android/Sdk

在某些系统上,路径可能区分大小写 => 从系统中按原样复制它们

例如,我个人在其他地方更大的 HDD 上有 SDK。不知道路径但仍然有 Android Studio?=>尝试在设置/配置的“系统设置”中查找“Android SDK” -配置=>设置=>外观和行为(或者也许您在“首选项”下有它)。不再有 Android Studio/路径无效?=> 您只能在“tools”、“build-tools”、“emulator”等文件夹中强力搜索“android*”,但最好将 SDK 安装到新位置:-)

步骤2:配置eas.json

根据您的目标构建(我假设production),您希望在.json 中的 JSON 键ANDROID_SDK_ROOT下定义目标构建的环境变量。应该位于您的React Native 项目根文件夹中 - 例如,通常与或文件夹处于同一级别。enveas.jsoneas.jsonsrc.expo

Linux/Ubuntu 上的示例eas.json

{
  "cli": {
    "version": ">= 0.49.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {
        "env": {
            "ANDROID_SDK_ROOT": "/home/YourUserName/Android/Sdk"
        }
    }
  },
  "submit": {
    "production": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

cli根据您的项目更改/保留版本。