【问题标题】:How do I fix this error while running expo build android?如何在运行 expo build android 时修复此错误?
【发布时间】:2021-04-16 12:06:18
【问题描述】:

您好,我需要一些帮助。那么我正在尝试从我的 expo react 应用程序构建一个 android apk 是什么情况。但是当我尝试这样做时,它失败了。这是尝试运行“expo build:android”时显示的输出。在 android 上的 expo 客户端上运行时效果很好。请帮我。这个项目的代码在this GitHub repo

✔ Choose the build type you would like: › apk
Checking if there is a build in progress...

Accessing credentials for setucoder in project storyhub5
✔ Would you like to upload a Keystore or have us generate one for you?
If you don't know what this means, let us generate it! :) › Generate new keystore
Failed to generate Android Keystore, it will be generated on Expo servers during the build
keytool exited with non-zero code: 1
Error: keytool exited with non-zero code: 1
    at ChildProcess.completionListener (/usr/local/lib/node_modules/expo-cli/node_modules/@expo/spawn-async/src/spawnAsync.ts:65:13)
    at Object.onceWrapper (events.js:422:26)
    at ChildProcess.emit (events.js:315:20)
    at maybeClose (internal/child_process.js:1048:16)
    at Socket.<anonymous> (internal/child_process.js:439:11)
    at Socket.emit (events.js:315:20)
    at Pipe.<anonymous> (net.js:673:12)
    ...
    at spawnAsync (/usr/local/lib/node_modules/expo-cli/node_modules/@expo/spawn-async/src/spawnAsync.ts:26:19)
    at createKeystore (/@expo/xdl@59.0.14/src/credentials/AndroidCredentials.ts:155:18)
    at Object.generateUploadKeystore (/@expo/xdl@59.0.14/src/credentials/AndroidCredentials.ts:198:9)
    at UpdateKeystore.provideOrGenerate (/usr/local/lib/node_modules/expo-cli/src/credentials/views/AndroidKeystore.ts:68:53)
    at UpdateKeystore.open (/usr/local/lib/node_modules/expo-cli/src/credentials/views/AndroidKeystore.ts:39:22)
    at CredentialsManager.run (/usr/local/lib/node_modules/expo-cli/src/credentials/route.ts:41:12)
    at runCredentialsManager (/usr/local/lib/node_modules/expo-cli/src/credentials/route.ts:12:10)
    at AndroidBuilder.collectAndValidateCredentials (/usr/local/lib/node_modules/expo-cli/src/commands/build/AndroidBuilder.ts:88:7)
    at AndroidBuilder.run (/usr/local/lib/node_modules/expo-cli/src/commands/build/AndroidBuilder.ts:33:5)
    at AndroidBuilder.command (/usr/local/lib/node_modules/expo-cli/src/commands/build/BaseBuilder.ts:40:7)

【问题讨论】:

标签: android reactjs react-native npm expo


【解决方案1】:

我的 azure devops CI/CD 管道(在 macOS 上运行)中的 expo 的 turtle build:android 命令有同样的问题。在对这个问题进行了更多搜索之后,我想出了以下内容。

实际问题是 android 构建环境的 JDK 版本应该与您在使用 keytool 生成 keystore.jks 文件时使用的 JDK 版本匹配。 截至今天(2021 年 11 月 18 日),最新的 JAVA SE 版本为 17。如果我使用此最新版本的 SDK 生成密钥库文件,则无法使用构建环境的 JDK(不是最新的)解密。我使用 JAVA SE 15 生成了 keystore.jks 文件。它对我有用。

【讨论】:

    【解决方案2】:

    解决方案 - 2021 年 3 月(在 macOS 上 - Big Sur)

    错误keytool exited with non-zero code: 1

    安装最新的Java SE Development Kit

    【讨论】:

      【解决方案3】:

      安装 JAVA SE 15 解决了这个问题。我认为关键工具与java有关?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-05
        相关资源
        最近更新 更多