You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端Flutter项目禁用audio_session及Java引用处理咨询

Flutter Android项目禁用audio_session插件问题排查与解决

问题描述

构建纯Android端Flutter项目时,因不需要iOS相关功能,想禁用audio_session插件,尝试排除后出现**"Audio Session plugin could not be found"**错误,同时编译时报错如下:

Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
    C:\tools\flutter\.pub-cache\hosted\pub.dartlang.org\audio_session-0.0.11\android\src\main\java\com\ryanheise\audio_session\AndroidAudioManager.java:11: error: package io.flutter.plugin.common does not exist
import io.flutter.plugin.common.BinaryMessenger;
                               ^
   C:\tools\flutter\.pub-cache\hosted\pub.dartlang.org\audio_session-0.0.11\android\src\main\java\com\ryanheise\audio_session\AndroidAudioManager.java:12: error: package io.flutter.plugin.common does not exist
import io.flutter.plugin.common.MethodCall;
                               ^
  C:\tools\flutter\.pub-cache\hosted\pub.dartlang.org\audio_session-0.0.11\android\src\main\java\com\ryanheise\audio_session\AndroidAudioManager.java:13: error: package io.flutter.plugin.common does not exist
import io.flutter.plugin.common.MethodChannel;

当前App/build.gradle配置片段:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 33

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
       jvmTarget = '1.8'
}

 sourceSets {
 main.java.srcDirs += 'src/main/kotlin'

疑问:项目仅用Kotlin实现,是否需要删除gradle中的Java引用?

解决方案

  1. 不用删除Gradle里的Java引用
    Flutter的Android插件体系本身依赖Java类库,哪怕你的项目全用Kotlin写,compileOptions里的Java 1.8配置是为了兼容Flutter底层和第三方插件的编译逻辑,删了只会引发更多兼容性问题——当前audio_session的编译错误也和这个无关。

  2. 正确禁用/排除audio_session插件

    • 直接依赖的情况:打开pubspec.yaml,删掉audio_session的依赖项,执行flutter pub get更新依赖。
    • 间接依赖的情况:在pubspec.yaml里加dependency_overrides强制排除:
      dependency_overrides:
        audio_session:
      
    • 清理缓存:执行flutter clean,再手动删掉.pub-cache里对应的audio_session目录(路径就是报错里的C:\tools\flutter\.pub-cache\hosted\pub.dartlang.org\audio_session-0.0.11)。
    • 重新构建:运行flutter build apk或你常用的构建命令。
  3. 临时修复编译错误(仅应急用)
    如果暂时没法彻底排除插件,可在App/build.gradle的android块里修正源码路径配置,确保Flutter插件类库能被找到:

    sourceSets {
        main {
            java.srcDirs += 'src/main/java'
            kotlin.srcDirs += 'src/main/kotlin'
        }
    }
    

    但这只是权宜之计,核心还是要彻底移除不需要的插件依赖。

内容的提问来源于stack exchange,提问作者Dee Star

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:12:31