β

Android 异常 ConfigNotSupportedException 小结

Harries Blog™ 27 阅读

一、问题描述

下载 了某 开源 demo 项目之后, 编译 过程提示错误如下:

Error:Execution failed for t ask ‘:compileDe bug Renderscr ip t’.

> com/andro id /jill/api/ConfigNotSupportedException

二、问题分析

在遇到问题之后肯定是先分析问题描述,再进行搜索,针对性的解决问题。

经过上述两步,发现网上答案混杂不一:

  • 有说明 sdk 版本不对的:

    下载源项目 sdk 之后并未解决问题

  • 有说明 gradle 插件 版本不对的:

    更新插件版本也尝试,错误依然;

  • 还有说明 gradle 配置 不对的:

    需要在’gradle.properties’文件中添加如下一行 代码

    // org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

    然而都没有解决。

在搜索过程中发现,抛出这个错误的 源码 位置: ConfigNotSupportedException. java

其中这么描述产生当前异常的原因:

/**

* Thrown when the requested Jack configuration for a given API version is not supported.

*/

简单 翻译 就是需要的功能,当前 API 不能给予就会抛出此异常。

这个错误提示很笼统,当前 Android 项目依赖的东西太多,库文件,gradle 版本,sdk 版本…

突然想到,仓库配置是否完整。

在项目 build .gradle
文件中,代码如下:

buildscript {

repositories {

jcenter()

}

dependencies {

classpath ‘com.android.tools.build:gradle:3.0.1′

// NOTE: Do not place your appli cat ion dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

}

}

可以看到,当前项目只配置了 jcenter
仓库,如果依赖 google 的库文件,就会出现当前异常,在 添加构建依赖
界面有介绍如何添加第三方依赖库:

allprojects {

repositories {

maven {

url " https ://repo. example .com/maven2
"

}

maven {

url "file://local/repo/"

}

ivy {

url " http s://repo.example.com/ivy
"

}

}

}

同时也介绍了如果添加 google 仓库:

allprojects {

repositories {

google()

// If you’re using a version of Gradle lower than 4.1, you must instead use:

// maven {

// url ‘ https://maven.google.com

// }

// An alternative URL is ‘ https://dl.google.com/dl/android/maven2/

}

}

当在 top-level build.gradle
文件中添加如下仓库之后,编译成功。

buildscript {

repositories {

jcenter()

maven { url ‘ http://repo1.maven.org/maven2
‘ }

google()

}

dependencies {

classpath ‘com.android.tools.build:gradle:3.0.1′

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

maven { url ‘ http://repo1.maven.org/maven2
‘ }

google()

}

}

三、问题小结

还是老话,Android 更新比较快,官方文档还是需要花 时间 好好研读的。

对于各种依赖也需下 功夫 分析,各个版本区别在哪,更新了什么都要清楚。

作者:Harries Blog™
追心中的海,逐世界的梦
原文地址:Android 异常 ConfigNotSupportedException 小结, 感谢原作者分享。

发表评论