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

在一次引入第三方库之后,在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

发布了89 篇原创文章 · 获赞 128 · 访问量 16万+
展开阅读全文

有没有大神专业会解决Android studio的问题的,搞了两天要疯了

01-22

开发新手,遇到难题,跟着教程写app的登陆和注册页面,然后出现bug,搜了各种解决方法都没有,包括去terminal里面找详细问题,也解决不了,重新下载配置了jdk和gradle都不行,也删除了用户下面的.gradle了,试过各种解决办法 ``` 报错 :app:compileDebugJavawithJavac org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details. ``` 试过了gradlew compileDebug --stacktrace -info 没有给出具体的提示 有一次说是编译器编译器 (1.8.0_191) 中出现异常错误。如果在 Bug Database (http://bugs.java.com) 中没有找到该错误, 请通过 Java Bug 报告页 (http://bugreport.java.com) 建立该 Java 编译器 Bug。 这个不明白 关于程序的代码我反复看了视频四五次应该是没有问题的 不明白问题出现在哪里,现在很迷茫 ``` * What went wrong: Task 'compileDebug' is ambiguous in root project 'llkuu'. Candidates are: 'compileDebugAidl', 'compileDebugAndroidTestAidl', 'compileDebugAndroidTestJavaWithJavac', 'compileDebugAndroidTestNdk', 'compileDebugAndroidTestRenderscript', 'compi leDebugAndroidTestShaders', 'compileDebugAndroidTestSources', 'compileDebugJavaWithJavac', 'compileDebugNdk', 'compileDebugRenderscript', 'compileDebugShaders', 'compileDebugSources', 'compileDebugUnitTestJavaWithJavac', 'compileDebugUnitTe stSources'. * Try: Run gradlew tasks to get a list of available tasks. Run with --debug option to get more log output. Run with --scan to get full insights. ``` 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览