Flutter配置Admob后运行报CheckAarMetadataWorkAction执行失败怎么办
问题原因
你接入的Admob SDK间接依赖了androidx.work:work-runtime:2.7.0,该依赖的AAR元数据要求最小编译SDK版本为31,但当前项目配置的compileSdkVersion为30,版本不匹配导致编译任务执行失败。
解决方案
方案1:升级编译SDK版本(推荐)
该方案不会影响App对低版本安卓系统的兼容性,你无需修改minSdkVersion配置,仅需修改android/app/build.gradle中的两处配置即可:
- 把
android代码块下的compileSdkVersion 30修改为compileSdkVersion 31 - 把
defaultConfig代码块下的targetSdkVersion 30修改为targetSdkVersion 31
修改后的对应配置片段如下:
android { compileSdkVersion 31 // 此处修改为31 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { applicationId "com.example.bedtime_horror_story" minSdkVersion 20 // 该配置无需修改,依然兼容安卓5.0及以上设备 targetSdkVersion 31 // 此处修改为31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } }
方案2:强制指定低版本依赖(临时兼容)
如果你暂时不想升级compileSdk,可以通过强制指定低版本work-runtime依赖绕过版本校验,在android/build.gradle的allprojects代码块中添加如下规则:
allprojects { repositories { google() mavenCentral() } // 新增以下配置 configurations.all { resolutionStrategy { force 'androidx.work:work-runtime:2.6.0' } } }
生效操作
修改完成后执行以下命令清理项目缓存,再重新运行即可:
flutter clean flutter pub get
内容的提问来源于stack exchange,提问作者Emranul_Rakib
相关产品推荐
相关产品推荐

