org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed;

升级完Android Stadio 3.1以后

将所有的compile变为implementation 后,clean和rebuild都没有发现错误,唯独在run的时候出现了以下错误:

原因及解决办法

原因:按照android stadio 3.1的要求,需要把gradle版本升级为 4.4及以上,但是gradle 4.4及以上要求将依赖api的compile换成implementation。而implementation声明的依赖没办法传递到module以外,即该module 以外module没办法引用到implementation声明的api。

即:module A implementation libA,而 moduleB implementation module A,那么module B 引导 libA 中的api,不然在build的时候会报org.gradle.api.internal.tasks.compile.CompilationFailedException。

解决办法:将compile 替换为 api即可,也就是如果有外部引用,则换成:api,剩下的换成:implementation。

示例:

dependencies {

    api fileTree(dir: 'libs', include: ['*.jar'])

    testImplementation 'junit:junit:4.12'

    api 'com.android.support:support-v4:26.1.0'

    api 'com.android.support:appcompat-v7:26.1.0'

    api 'com.google.code.gson:gson:2.8.2'

    api 'com.j256.ormlite:ormlite-core:4.48'

    api 'com.j256.ormlite:ormlite-android:4.48'

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 11,519评论 1 9
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,757评论 2 45
  • 网站分析的两个原则:可行动(改进)和以用户为中心(分析用户行为)。 网站分析的具体工作:1、建立并维护业务数据模型...
    阿东咚咚咚阅读 2,047评论 0 2
  • 最近,两个共事很久、原本形影不离的同事闹变扭了。 原因是同事A经常下班后叫同事B出来喝酒唱K,但同事B因为家里有孩...
    木萧鸣阅读 7,895评论 0 0
  • 今天的晨读文章是《轻断食:正在横扫全球的瘦身革命》。文中介绍了“5:2减肥法”,也就是5天正常饮食,2天轻断食。 ...
    Claudia_C阅读 1,450评论 0 1

友情链接更多精彩内容