导入旧Eclipse项目至Android Studio时play-services-ads构建报错求助
解决旧Eclipse项目导入Android Studio后广告库样式缺失问题
嘿,这个问题我之前也踩过坑!根源就是你的Support库版本太老旧,和Google Play服务广告库的依赖不兼容导致的。
问题原因
你用的com.android.support:appcompat-v7:19.+是对应Android 4.4(API 19)的老版本,而play-services-ads:15.0.0依赖的是更高版本的Support库资源——那些TextAppearance.Material.Notification相关的样式,是在API 21及以上的Support库才引入的,旧版本里根本没有,所以编译器才会报找不到的错误。
两种解决办法,按需选择:
1. 升级Support库到兼容版本(适合暂时不想迁移AndroidX的情况)
Support库的最后一个稳定版本是28.0.0,你可以直接修改依赖,同时记得把项目的compileSdkVersion也改成28(在build.gradle的android代码块里):
android { compileSdkVersion 28 // 其他项目配置... } dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:support-v4:28.0.0' implementation 'com.google.android.gms:play-services-ads:15.0.0' }
改完后点击Sync Now同步项目,应该就能解决样式找不到的问题了。
2. 迁移到AndroidX(推荐长期解决方案)
因为Support库已经停止维护了,迁移到AndroidX能彻底避免这类版本兼容问题,还能用上最新的功能和修复:
- 打开Android Studio,点击顶部菜单栏的
Refactor > Migrate to AndroidX - 按照向导完成迁移,迁移后你的依赖会自动替换成AndroidX版本(也可以手动调整到最新稳定版):
android { compileSdkVersion 34 // 建议使用最新的稳定API版本 // 其他项目配置... } dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.gms:play-services-ads:22.4.0' // 广告库也可以升级到最新版 }
迁移过程中Android Studio会自动替换所有Support库的引用,非常省心。
额外注意
如果升级或迁移后还有其他报错,大概率是项目里其他第三方库和新的依赖版本不兼容,这时候可以检查那些库的更新日志,换成支持AndroidX/Support 28的版本就行。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

