返回

解决 Flutter AAB 格式输出中的 `compileReleaseJavaWithJavac` 错误:一步步指南

Android

以 AAB 格式输出 Flutter 应用程序:解决 compileReleaseJavaWithJavac 错误

问题简介

当在 Flutter 中使用 agora_uikitemoji_picker_flutter 库并尝试以 AAB 格式输出应用程序时,您可能会遇到 compileReleaseJavaWithJavac 错误。此错误表明,compileReleaseJavaWithJavac 任务和 compileReleaseKotlin 任务的 JVM 目标兼容性未设置为相同的 Java 版本。

解决方法

要解决此问题,请执行以下步骤:

  1. 了解问题原因:
    错误消息表明,compileReleaseJavaWithJavac 任务和 compileReleaseKotlin 任务的 JVM 目标兼容性应该设置为相同的 Java 版本。

  2. 修改构建文件:
    您需要修改项目级别和应用程序级别的构建文件中的 compileOptionskotlinOptions 部分:

    • 项目级别构建文件 (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 文件:

    app/build/outputs/bundle/release/app.aab
    

其他提示

  • 确保您的 Kotlin 版本为 1.9.0。
  • 尝试清理项目并重新构建:
    ./gradlew clean
    ./gradlew app:assembleRelease
    
  • 如果问题仍然存在,请尝试删除 compileOptionskotlinOptions 块,然后重新添加它们。
  • 确保您的 Flutter SDK 和 Gradle 版本是最新的。

常见问题解答

1. 为什么会出现 compileReleaseJavaWithJavac 错误?

此错误发生在 compileReleaseJavaWithJavac 任务和 compileReleaseKotlin 任务的 JVM 目标兼容性未设置为相同的 Java 版本时。

2. 如何修改构建文件来解决此问题?

您需要在项目级别和应用程序级别的构建文件中修改 compileOptionskotlinOptions 部分,如下所示:

项目级别构建文件 (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。
  • 尝试清理项目并重新构建。
  • 删除 compileOptionskotlinOptions 块,然后重新添加它们。
  • 确保您的 Flutter SDK 和 Gradle 版本是最新的。