有人可以展示如何解决与此相关的问题吗
ionic Cordova 构建安卓
我已经尝试过此 link 中提供的建议但问题仍然存在。
cordova.cmd build android Checking Java JDK and Android SDK versions ANDROID_SDK_ROOT=undefined (recommended setting) ANDROID_HOME=undefined (DEPRECATED) Failed to find 'JAVA_HOME' environment variable. Try setting it manually. [ERROR] An error occurred while running subprocess cordova.
cordova.cmd build android exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
最佳答案
要使用 cordova,您需要 Java、Android SDK 和 Gradle。如果您查看源文件,主要是 platforms/android/cordova/lib/check_reqs.js
,您可以找到打印出您收到的消息的确切代码。 Cordova 检查您在系统上设置的环境变量。
对于 Java,您需要 JAVA_HOME 变量,如果您使用的是 linux,则可以通过在终端上键入 echo $JAVA_HOME
来检查变量。如果变量没有被打印出来,你必须手动设置它。安装 java 8 并在您的终端中使用 export JAVA_HOME="path_to_java"
进行设置。我的路径是 /usr/lib/jvm/java-8-openjdk-amd64/
。
您需要对 ANDROID_HOME 执行相同的操作。当您安装 Android Studio 时,您将安装 Android SDK。对我来说,它在我的主目录 /home/username/Android/Sdk
中。
对于 Gradle,您不需要设置环境变量。您可以使用 sudo apt install gradle
安装它。
请注意,一旦您关闭终端,您添加的所有变量都将消失。您可以通过将 export
命令添加到您的 ~/.profile
文件并重新启动您的系统来使它们永久化。您也可以在终端中键入 source ~/.profile
以将变量加载到该终端实例中。
您可能会收到有关 Android 许可证的错误消息。只需键入 path_to_your_sdk/sdk/tools/bin/sdkmanager --licenses
并接受所有许可证。
如果您安装了多个 Java 版本,Cordova 可能会给您带来麻烦,因为它不仅检查 JAVA_HOME
变量,即使它只需要那个位置。如果您确信您的 JAVA_HOME
设置正确,您可以注释掉第 370-375 行(当以下 if 语句为 true !String(values[0 ]).startsWith('1.8.')
) 在 platforms/android/cordova/lib/check_reqs.js
中,Cordova 可以正常工作。
关于android - 如何解决ANDROID_SDK_ROOT=undefined(推荐设置)和ANDROID_HOME=undefined(DEPRECATED),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66864889/