报错
使用 Terminal 运行命令,报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| FAILURE: Build failed with an exception.
* What went wrong: A problem occurred configuring root project 'StringFog'. > Could not resolve all files for configuration ':classpath'. > Could not resolve com.android.tools.build:gradle:8.0.0. Required by: project : > No matching variant of com.android.tools.build:gradle:8.0.0 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.0' but: - Variant 'apiElements' capability com.android.tools.build:gradle:8.0.0 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 11 and the consumer needed a component for use during runtime, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.0') - Variant 'javadocElements' capability com.android.tools.build:gradle:8.0.0 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.0') - Variant 'runtimeElements' capability com.android.tools.build:gradle:8.0.0 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 11 and the consumer needed a component, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.0') - Variant 'sourcesElements' capability com.android.tools.build:gradle:8.0.0 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.0') > Could not resolve --------------------略
* Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 857ms
|
重点为 Incompatible because this component declares a component, compatible with Java 11 and the consumer needed a component, compatible with Java 8
。
应该是 jdk 版本不对。
但是查资料,在 ide 修改 Gradle 的 jdk 为 11、17 都无效。
解决历程
- 在 Terminal 使用命令
java -version
可以显示 jdk 11。但是转念一想我系统变量 JAVA_HOME 配的 1.8,蛮奇怪的,会不会有什么冲突。 - 修改系统变量 JAVA_HOME 为 jdk 11 版本,以及 Path 变量里的 bin 路径。
- 测试正常
- 应用打包会提示
Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
。 - 这次使用 IDE 的设置,打开设置搜索 Terminal,在 Project Setting 里设置终端的环境变量:Environment variables: JAVA_HOME=E:/Program Files/Android/Android Studio/jbr,这个是 ide 自带的 17 jdk。
- 命令执行正常。
done.