Gradle编译问题整理(持续更新)

1、Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).

maven {url 'https://maven.aliyun.com/reposity/google' }
maven {url 'https://maven.aliyun.com/reposity/jcenter' }
maven {url 'http://maven.aliyun.com/nexus/content/groups/public' }

Gradle编译问题整理(持续更新)_第1张图片

2、Unable to load class 'org.gradle.api.internal.component.Usage'.

该问题一般均是classpath 'com.novoda:bintray-release:0.8.0'库兼容性导致的,如果有com.novoda:bintray-release请把版本修改为0.5.0;如果AndroidStudio版本大于3.14,请改为0.8.0

Gradle编译问题整理(持续更新)_第2张图片

3、The specified Android SDK Build Tools version (23.0.2) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.2.
Android SDK Build Tools 27.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '23.0.2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

这是因为报错原因是因为gradle插件版本以及SDK build Tools 是有关联的,更新AndroidStudio或者gradle时,gradle 插件版本会做相应检测是否符合,不符合版本要求就会报错。

解决方案:直接点击Open File提示,会直接打开文件,将所有提示的地方修改成目标版本,重新编译即可。

Gradle编译问题整理(持续更新)_第3张图片

4、错误: 程序包android.support.annotation不存在
错误: 找不到符号
符号:   类 NonNull

报错原因:是因为程序使用了NonNull的注解,但是没有导包

解决方案:implementation 'com.android.support:support-v4:23.2.0',重新编译即可

Gradle编译问题整理(持续更新)_第4张图片Gradle编译问题整理(持续更新)_第5张图片

5、Gradle's dependency cache may be corrupt

这种情况是因为下载的新版本gradle压缩包损坏了导致出错,去官网下载需要的gradle版本压缩包,替换C:\Users\Rui\.gradle\wrapper\dists路径下目标gradle的压缩包,重新编译即可。

Gradle官网地址

Gradle编译问题整理(持续更新)_第6张图片

Gradle编译问题整理(持续更新)_第7张图片Gradle编译问题整理(持续更新)_第8张图片

6、Failed to find Build Tools revision 27.0.3

新换了电脑,整个环境从零开始搞,AndroidStudio安装后,原来的工程导进来,build-tools没有了,可以直接从官网下载,然后放到Android\Sdk\build-tools目录下就可以了,build-tools官网地址如下。

Gradle编译问题整理(持续更新)_第9张图片

Build-Tools官网

7、org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':ops:lintVitalRelease'.

在使用AndroidStudio打包release版本的apk时候,报了这个错,解决办法是在相应模块的gradle文件中添加如下两行,重新编译即可,需要注意添加的时候一定要是报错module的gradle,假如我们的project中有多个module,添加的地方不对那肯定是无法打包成功的。

lintOptions {
    checkReleaseBuilds false
    abortOnError false
}

Gradle编译问题整理(持续更新)_第10张图片

Gradle编译问题整理(持续更新)_第11张图片

8、Caused by: java.lang.NullPointerException
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:787)

建立NDK工程时候,我们的工程需要有NDK支持,否则就会报这个错,NDK无法编译,在Project Structure中设置好NDK的路径就可以了,如果没下载CMake,AndroidStudio直接会提示安装并编译,点击按钮即可。

Gradle编译问题整理(持续更新)_第12张图片

Gradle编译问题整理(持续更新)_第13张图片

9、gradlew命令编译:

如果项目编译出错,可直接使用gradlew命令编译,可以看到更详细信息,方便问题定位。

gradlew compileDebugSources --stacktrace -info

gradlew animation:processDebugResources --debug --stacktrace -info

10、AAPT2 error: check logs for details

出现该错误时,我们可以点击Build Output视图中的Run tasks,同时右侧会显示出当前编译失败的详细信息,在顶部可以看到是Execution failed for task ':animation:processDebugResources'出错了,那很明显就是资源文件编译出错了,如下图:

Gradle编译问题整理(持续更新)_第14张图片

那么我们需要进一步判断是哪个资源文件出错,在点击Build Output视图中的Toggle View,就会看到进一步详细的信息,如下图:

Gradle编译问题整理(持续更新)_第15张图片

Gradle编译问题整理(持续更新)_第16张图片

从这里我们就可以直接判断出,原来是在activity_recycle.xml文件中使用的tr_wave_height属性找不到导致出错的,那么我们只需要根据错误进行相应的修改即可。

11、Unsupported method: BaseConfig.getApplicationIdSuffix().

Gradle编译问题整理(持续更新)_第17张图片

从Github上Down下来的项目,编译出现该问题,这种问题都是由于项目中使用的gradle版本太低导致的。修改方法如下:

第一步:修改根目录下build.gradle文件中的classpath,或者干脆一点,直接从自己其他构建成功的项目中,把根目录下build.gradle文件的内容全部拷贝过来。

Gradle编译问题整理(持续更新)_第18张图片

第二步:修改gradle-wrapper.properties文件中distributionUrl选项的值,也是直接参考其他项目,直接复制过来即可。

Gradle编译问题整理(持续更新)_第19张图片

修改完这两处,上一个问题就解决了,不过可能会出现其他的问题。比如gradle中还使用的compile关键字等等,我们根据问题具体解决就可以了。

Gradle编译问题整理(持续更新)_第20张图片

12、Data Binding Android - Type parameter T has incompatible upper bounds : ViewDataBinding xxx

Android项目使用的框架越来越多,也都越来越高级,AS中还是报红,但是编译都可以通过,说明本身是没有错误的,看来AS已经非常强大,还是需要跟进技术,还需要改进,解决方法如下,非常简单!

1)定位到xml文件处,比如“some_layout.xml”
2)右击 -> Refactor -> Rename (or SHIFT + F6),我的快捷键是Eclipse方式,是(Alt + Shift + R)
3)将xml文件改个名字,比如“some_layout2.xml”

4)再次重命名,改回原来的名字,”some_layout.xml“,报错即会消失

你可能感兴趣的:(Android异常处理,环境搭建)