Android项目构建报错:Configuration 'compile'已过时,求解决方案
解决Configuration 'compile'过时的报错问题
嘿,作为Android新手遇到这个问题很正常,我来一步步帮你搞定!
报错原因
这个提示是说compile这个依赖配置已经被废弃了,Google在新版Android Gradle插件里用implementation和api替代了它,compile在2018年底就被正式移除,所以现在项目里只要还有compile就会触发这个提示(虽然是警告,但最好尽快修复避免后续问题)。
具体修复步骤
- 打开你提供的应用级build.gradle文件
- 找到
dependencies代码块,把里面所有的compile关键字替换成implementation如果你有需要让其他模块依赖的库,可以用
api,但作为新手,大部分场景用implementation就完全足够 - 检查项目中其他模块的
build.gradle文件(比如你用到的:library、:gallery这些模块),同样把里面的compile替换成implementation或api - 点击Android Studio右上角的Sync Now按钮,同步Gradle项目
额外优化建议
看你提供的build.gradle代码,里面有多个重复的android {...}代码块(比如单独的lintOptions、buildTypes块),这可能会导致Gradle解析异常,建议把这些内容合并到同一个android块里,示例如下:
android { compileSdkVersion 27 useLibrary 'org.apache.http.legacy' defaultConfig { minSdkVersion 19 targetSdkVersion 27 versionCode 102 versionName "1.0.2" multiDexEnabled true manifestPlaceholders = [onesignal_app: "code", onesignal_google_project_number: "REMOTE"] } lintOptions { checkReleaseBuilds false abortOnError false } buildTypes { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/notice' exclude 'META-INF/notice.txt' exclude 'META-INF/license' exclude 'META-INF/license.txt' } debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { debuggable false minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' consumerProguardFiles 'proguard-file.pro' } } dexOptions { preDexLibraries = false javaMaxHeapSize "12g" } }
这样整理后,Gradle的解析会更顺畅,也能避免一些潜在的配置冲突问题。
内容的提问来源于stack exchange,提问作者Soarmorrow Solutions
相关产品推荐
相关产品推荐

