Error:Execution failed for task ':app:transformClassesWithPreJackPackagedLibrariesForDebug'.> com.android.build.api.transform.TransformException: com.android.jack.api.ConfigNotSupportedException: Jack requires Build Tools 24.0.0 or later
  • 1
  • 2
  • 1
  • 2

这问题很显示,需要build tools 24.0.0以上!(later-以上,我英语不好?)

主要是因为我之前用了Android N和JDK1.8开发,后来又换了android sdk23,jdk1.7就出现这个问题! 
所以解决这个问题,把build.gradle里的jackOptions 属性enabled 值改为false就好!

    defaultConfig {        applicationId "id"        minSdkVersion 14        targetSdkVersion 23        versionCode 1        versionName "1.0.0"        jackOptions {            enabled false        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

那jack又是有什么用: 
Java 8支持 
早在前年开始研究 Annotation 的时候,就在感慨为什么 Android 一直不支持 Java 8,即使现在 Java 9 都快出了。终于的终于,Android从N 版本开始支持 Java 8的编译,前提是要在 Gradle 文件中显式声明使用 Jack 编译器。 
这个 Jack 是什么鬼呢?简单来说,传统的编译工具链是将 java 代码通过 javac 编译成.class 文件,再通过 dx 编译成 .dex。也就是酱紫的:

javac (.java --> .class) --> dx (.class --> .dex)而 Jack 则是一条龙服务,中间不需要经过其他工具或者命令,一条命令就可以将.java 文件编译成.jack 从而编程.dex:ack (.java --> .jack --> .dex)使用 jack 非常简单,gradle 配置即可android {    ...    defaultConfig {        ...        jackOptions {            enabled true        }    }    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }}

更多相关文章

  1. Android(安卓)11 (R) 分区存储
  2. Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值
  3. 为Android加入busybox工具
  4. Android(安卓)lint 删除无用图片文件和配置文件
  5. android 开发-数据存储之文件存储
  6. 解析ANDROID ps命令执行后各项参数的含义
  7. 开发可统计单词个数的Android驱动程序(1)
  8. [Android] 该文件包与具有同一名称的现有文件包存在冲突
  9. 开发可统计单词个数的Android驱动程序(1)

随机推荐

  1. Android学习二:Resources
  2. Android一些关于分辨率和布局的设置
  3. android webview 遇到的问题:external/chr
  4. Android(安卓)framework源码之JNI实现过
  5. Android(安卓)使用 Ksoap2 出现的低级错
  6. 百度地图 android 定位Demo
  7. Android(安卓)通过Socket 和服务器通讯
  8. Android应用程序签名详解 简介
  9. 第一个Android程序
  10. --android studio 使用gradle 导出jar包,