Flutter构建APK出现cannot find symbol编译错误求助
Flutter APK构建失败问题解决
相关配置文件内容
gradle.wrapper.properties
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
模块级build.gradle
android { namespace = "com.mycompany.refereevision" compileSdkVersion 35 ndkVersion "27.0.12077973" compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = 17 } }
gradle.properties
org.gradle.jvmargs=-Xmx4608m android.useAndroidX=true android.enableJetifier=true android.enableR8=true RELEASE_STORE_FILE=D\\:/refereevision/upload-keystore.jks RELEASE_STORE_PASSWORD=K1o2b3e4 RELEASE_KEY_ALIAS=upload RELEASE_KEY_PASSWORD=K1o2b3e4 kotlin.jvm.target.validation.mode = IGNORE
构建错误详情
执行flutter build apk命令时,流程及错误如下:
- 自动安装Android SDK Platform 34
- 弹出字体摇树优化提示
- 出现Java 8版本过时警告
- 核心编译错误来自
flutter_inappwebview_android-1.0.13依赖,其InAppWebViewFlutterPlugin.java文件无法找到FlutterView、PluginRegistry.Registrar等符号,共5个错误 - 最终导致任务
:flutter_inappwebview_android:compileReleaseJavaWithJavac执行失败,构建耗时2分1秒,返回码1
解决方法
升级flutter_inappwebview依赖版本
旧版本1.0.13未适配最新Flutter Android API(FlutterView、PluginRegistry.Registrar已被废弃或移除),在pubspec.yaml中将依赖升级到最新稳定版,示例:flutter_inappwebview: ^6.0.0 # 以实际最新版本为准执行
flutter pub get更新依赖。升级Flutter SDK
执行flutter upgrade将本地Flutter SDK升级至最新稳定版,确保与依赖版本兼容。统一子模块Java版本配置
在模块级build.gradle中添加配置,强制所有子模块使用Java 17编译,避免依赖模块沿用Java 8:android { // 原有配置... subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { project.android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } } } } }安装指定版本Android SDK
通过Android Studio的SDK Manager安装compileSdkVersion指定的35版本SDK,替换自动安装的34版本。
内容的提问来源于stack exchange,提问作者Ajoy Lawrence
相关产品推荐
相关产品推荐

