React Native中play-services-ads版本冲突及清单合并问题求助
React Native集成Google移动广告问题解决
问题1:依赖版本约束冲突
添加implementation 'com.google.android.gms:play-services-ads:22.1.0'后报错,提示debugRuntimeClasspath使用22.0.0版本,无法找到满足版本约束的依赖包。
解决办法:
- 直接移除手动添加的
play-services-ads依赖,react-native-google-mobile-ads库已经内置了适配的广告依赖版本,手动指定会触发版本冲突。 - 若必须手动指定版本,先执行
./gradlew app:dependencies查看react-native-google-mobile-ads实际依赖的play-services-ads版本,再将手动指定的版本对齐到该版本。
问题2:Android清单合并失败(重复APPLICATION_ID)
将依赖版本改为22.0.0后,出现项目AndroidManifest.xml与[:react-native-google-mobile-ads]的清单文件存在重复的com.google.android.gms.ads.APPLICATION_ID属性报错。
解决办法:
- 在项目的AndroidManifest.xml的
<application>标签中添加tools命名空间:
<application ... xmlns:tools="http://schemas.android.com/tools">
- 在你自己配置的
APPLICATION_IDmeta标签上添加tools:replace="android:value"属性,示例:
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy" tools:replace="android:value" />
这样就能覆盖库自带的meta配置,解决清单合并冲突。
内容的提问来源于stack exchange,提问作者lb2020
相关产品推荐
相关产品推荐

