在我的开发者机器上:
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /home/michal/Android/Sdk
• Platform android-31, build-tools 30.0.2
• ANDROID_HOME = /home/michal/Android/Sdk
• Java binary at: /home/michal/android/studio/jre/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
• All Android licenses accepted.但是全局java版本是Java 8:
java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-1-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)它是由Android设置的。但是,在我的构建服务器Flutter上使用默认的1.8java版本:
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /home/jenkins/Android/Sdk
• Platform android-31, build-tools 30.0.2
• ANDROID_HOME = /home/jenkins/Android/Sdk
• Java binary at: /usr/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2-b11)
• All Android licenses accepted.因此,针对Android 12的应用程序无法编译。
如何将Java设置为11 (就像在我的开发机器上设置的那样),只用于?系统,默认的java版本不能更改I不能更改JAVA_HOME变量或更改默认的java版本,它需要是Java 8。
我无法在构建服务器上安装Android,我需要知道配置实际存储在哪里。
我想我需要设置java二进制路径,然后更改JAVA_HOME环境变量。把它放在哪里?
发布于 2021-10-25 12:24:11
这更像是一种解决办法,但这在我的例子中奏效了:
(我在Linux上,所以版本是相同的)
flutter config --android-studio-dir="path"
现在,Flutter使用了Android附带的Java,目前它是Java11。但是,我最初的问题是,是否可以告诉Flutter应该使用哪个Java版本(不使用环境变量--全局的还是在每个flutter命令调用上)。
发布于 2021-10-22 14:22:51
我不能改变JAVA_HOME变量。
你可以在本地改变它。例如,在命令提示符下可以这样做:
$ export JAVA_HOME=/new/setting
$ flutter ...因此,您可以在shell初始化脚本(例如“~/..bashrc”中)中定义一个shell别名或shell函数。
或者,您可以编写一个包装器脚本来完成相同的任务。
#!/bin/sh
export JAVA_HOME=/new/setting
flutter "$@"用它代替颤栗。
诸若此类。
https://stackoverflow.com/questions/69676821
复制相似问题