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 ps命令执行后各项参数的含义
  2. android 开发-数据存储之文件存储
  3. Android开发者的演示工具——asm.jar
  4. [Android] 该文件包与具有同一名称的现有文件包存在冲突
  5. Android自动化测试之MonkeyRunner工具(六)
  6. Android SO文件的兼容和适配
  7. 2012版辅助开发工具包(ADT)新功能特性介绍及安装使用

随机推荐

  1. Android点击事件onTouchEvent与onInterce
  2. android WebView 详细代码
  3. Android虚拟键盘挡住输入框的处理方法
  4. ListView 滑动出现黑色边际问题
  5. Android按返回键弹出对话框退出应用程序
  6. Android 完全掌握Service
  7. android使用inject需要注意的地方
  8. 【从头学android】第一个程序,点按钮显示H
  9. Android:支持不同分辨率的屏幕设计
  10. android WebView 拍照上传图片兼容