zoukankan      html  css  js  c++  java
  • 一种解决Android studio 3.0 Build报错的方法

    问题背景: 最近在开始使用AndroidStudio3.0,刚好有一个开源的项目(Material-Movies),需要学习下。因为该项目比较早(2015年),而这段时间AndroidStudio和Gradle都升级了,所以就导致直接导入是编译不通过的。好在AndroidStudio也智能,基本上都会有提示,可以按他的要求升级什么的。

    问题描述:在对所有的升级都进行修改后,进行Sync已能成功编译,但是一旦执行BuildAPK就会报错。Execution failed for task ':app:compileDebugJavaWithJavac'

    问题分析:按网上的说法,在命令行执行:

    gradlew compileDebug --stacktrace

    会发现如下:

    exception is:
    org.gradle.execution.TaskSelectionException: Task 'compileDebug' is ambiguous in root project 'HackVG'. Candidates are: 'compileDebugAidl', 'compileDebugAndroidTestAidl', 'compileDebugAndroidTestJavaWithJavac', '
    compileDebugAndroidTestNdk', 'compileDebugAndroidTestRenderscript', 'compileDebugAndroidTestShaders', 'compileDebugAndroidTestSources', 'compileDebugJavaWithJavac', 'compileDebugNdk', 'compileDebugRenderscript',
    'compileDebugShaders', 'compileDebugSources', 'compileDebugUnitTestJavaWithJavac', 'compileDebugUnitTestSources'.

    然后网上各种搜索也搜索不出个所以然来。

    问题的转机出现在,无意看到

    implementation 'com.jakewharton:butterknife:6.0.0'
    annotationProcessor 'com.jakewharton:butterknife:6.0.0'
    想起来在3.0之后编译有修改过,由原来的APTplugin改为annotationProcessor. 然后implemet改为implementation。 如果只有anoatationProcessor编译是能找到的,但是要build还是需要加implementationd的。

    问题解决:需要添加成对

    implementation 'com.google.dagger:dagger:2.0'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
    原来漏了加
    implementation 'com.google.dagger:dagger:2.0'
    添加之后果然能够解决。
  • 相关阅读:
    PJzhang:CVE-2020-1472微软NetLogon权限提升漏洞~复现
    PJzhang:vulnhub靶机sunset系列SUNSET:DECOY
    PJzhang:vulnhub靶机sunset系列SUNSET:TWILIGHT
    PJzhang:vulnhub靶机sunset系列SUNSET:SUNRISE
    PJzhang:vulnhub靶机sunset系列SUNSET:MIDNIGHT
    PJzhang:vulnhub靶机sunset系列SUNSET:SOLSTICE
    PJzhang:whatweb指纹扫描工具样例
    HTTP状态码解读
    【并发】线程与进程的区别
    MYSQL之性能优化 ----MySQL性能优化必备25条
  • 原文地址:https://www.cnblogs.com/jianggest/p/8109460.html
Copyright © 2011-2022 走看看