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'
    添加之后果然能够解决。
  • 相关阅读:
    token是什么?和session什么区别,怎么用
    HashTable详解
    Cookie和Session的区别
    测试基础面试题
    什么是回归测试?回归测试的主要目的是什么?
    每天一个linux常用命令--ls 和 -ll 有什么区别?
    python中6个序列的内置类型分别是什么,列表和元组的异同有哪些
    今天去面试自动化测试,被几个问题问住了,记录下
    python排序算法-冒泡和快速排序,解答阿里面试题
    Myeclipse使用积累
  • 原文地址:https://www.cnblogs.com/jianggest/p/8109460.html
Copyright © 2011-2022 走看看