解决 Flutter AAB 格式输出中的 `compileReleaseJavaWithJavac` 错误:一步步指南
2024-03-11 17:27:21
以 AAB 格式输出 Flutter 应用程序:解决 compileReleaseJavaWithJavac
错误
问题简介
当在 Flutter 中使用 agora_uikit
和 emoji_picker_flutter
库并尝试以 AAB 格式输出应用程序时,您可能会遇到 compileReleaseJavaWithJavac
错误。此错误表明,compileReleaseJavaWithJavac
任务和 compileReleaseKotlin
任务的 JVM 目标兼容性未设置为相同的 Java 版本。
解决方法
要解决此问题,请执行以下步骤:
-
了解问题原因:
错误消息表明,compileReleaseJavaWithJavac
任务和compileReleaseKotlin
任务的 JVM 目标兼容性应该设置为相同的 Java 版本。 -
修改构建文件:
您需要修改项目级别和应用程序级别的构建文件中的compileOptions
和kotlinOptions
部分:- 项目级别构建文件 (build.gradle):
allprojects { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" } }
- 应用程序级别构建文件 (app/build.gradle):
android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } dependencies { // Agora UI Kit implementation 'io.agora:agora-uikit:1.4.5' // Emoji Picker Flutter implementation 'com.vanniktech:emoji-picker-flutter:1.2.0' }
- 项目级别构建文件 (build.gradle):
-
同步项目:
修改构建文件后,同步项目以应用更改:./gradlew app:assembleRelease
-
检查输出:
同步完成后,检查输出文件夹中是否存在 AAB 文件:app/build/outputs/bundle/release/app.aab
其他提示
- 确保您的 Kotlin 版本为 1.9.0。
- 尝试清理项目并重新构建:
./gradlew clean ./gradlew app:assembleRelease
- 如果问题仍然存在,请尝试删除
compileOptions
和kotlinOptions
块,然后重新添加它们。 - 确保您的 Flutter SDK 和 Gradle 版本是最新的。
常见问题解答
1. 为什么会出现 compileReleaseJavaWithJavac
错误?
此错误发生在 compileReleaseJavaWithJavac
任务和 compileReleaseKotlin
任务的 JVM 目标兼容性未设置为相同的 Java 版本时。
2. 如何修改构建文件来解决此问题?
您需要在项目级别和应用程序级别的构建文件中修改 compileOptions
和 kotlinOptions
部分,如下所示:
项目级别构建文件 (build.gradle) :
allprojects {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked"
}
}
应用程序级别构建文件 (app/build.gradle) :
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
}
dependencies {
// Agora UI Kit
implementation 'io.agora:agora-uikit:1.4.5'
// Emoji Picker Flutter
implementation 'com.vanniktech:emoji-picker-flutter:1.2.0'
}
3. 如何同步项目以应用构建文件中的更改?
使用以下命令同步项目:
./gradlew app:assembleRelease
4. 如何检查 AAB 文件是否已成功输出?
同步项目后,检查输出文件夹中是否存在 AAB 文件:
app/build/outputs/bundle/release/app.aab
5. 如果 compileReleaseJavaWithJavac
错误仍然存在怎么办?
- 确保您的 Kotlin 版本为 1.9.0。
- 尝试清理项目并重新构建。
- 删除
compileOptions
和kotlinOptions
块,然后重新添加它们。 - 确保您的 Flutter SDK 和 Gradle 版本是最新的。