迁移至Android 31后遇AppMeasurementReceiver的android:exported指定错误求助
解决Android 31迁移后AppMeasurementReceiver的exported错误
这个AppMeasurementReceiver是Google Play Services(尤其是Firebase Analytics相关依赖)自动合并到你项目Manifest文件中的,并非你自己代码里定义的,你可以通过以下方式解决:
升级相关依赖版本
直接把Google Play Services测量类库(com.google.android.gms:play-services-measurement)升级到20.0.0及以上版本,新版本已经适配Android 12要求,会自动为这个Receiver添加正确的android:exported属性,无需手动修改。如果用了Firebase,升级Firebase BOM到30.0.0及以上版本也能解决,它会统一管理所有关联依赖的版本。手动在Manifest中声明配置
要是暂时没法升级依赖,就在你的AndroidManifest.xml里显式声明这个Receiver,指定android:exported的值(一般设为false即可),同时加上tools:node="merge"保证和库中默认配置合并:<receiver android:name="com.google.android.gms.measurement.AppMeasurementReceiver" android:exported="false" tools:node="merge"> <intent-filter> <action android:name="com.google.android.gms.measurement.UPLOAD" /> </intent-filter> </receiver>
内容的提问来源于stack exchange,提问作者stefan.m
相关产品推荐
相关产品推荐

