Android问题集锦(十五)- 成功解决org.gradle.api.internal.tasks.compile.CompilationFailedException

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzw2017/article/details/81708898

在一次引入第三方库之后,在Run运行时突然报以下错误:

'Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.'

经过一轮Google后,网上说的原因是:

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

如果是这个原因的话,我升级3.x已经有一段时间了,一直是用compile或implementation声明引用第三方库的,都没出现这样的 问题,当时就纳闷,就尝试了以下解决方案:

将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'

然而并没有什么用,无论是clear build 还是rebuild project都不行。
最后还是File -> Invalidate Caches -> Invalidate and Restart 解决这个问题

小结:

  • compile 替换为 api
  • File -> Invalidate Caches -> Invalidate and Restart

参考:
https://juejin.im/entry/5acf1ef56fb9a028cd457b6e

猜你喜欢

转载自blog.csdn.net/hzw2017/article/details/81708898
今日推荐