Error:Execution failed for task ':xxx:compileReleaseJavaWithJavac'.

首先找到自己出現這個錯誤的原因,可以移步http://blog.csdn.net/u014453811/article/details/54582426
其他包括配置環境變量之類的方法,如果work for you,那麼congratulations
不過我就沒那麼幸運了,stackoverflow上面的方法hava nothing work for me
我的配置AS3.0 Canary1
這裏寫圖片描述
gradle:

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        ...
        jackOptions {
            enabled true
        }
    }
    buildTypes {
           ...
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

項目配置如上圖
這裏寫圖片描述
gradle:
android {
compileSdkVersion 25
buildToolsVersion ‘25.0.0’

defaultConfig {
    minSdkVersion 19
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
packagingOptions {
    exclude 'typedefs.txt'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
}
sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}
compileOptions {
    targetCompatibility JavaVersion.VERSION_1_8
    sourceCompatibility JavaVersion.VERSION_1_8
}

}
Module配置如上圖
根據java1.8的方式進行配置
通過上面的鏈接命令行查出的錯誤是:

編譯器 (1.8.0_131) 中出現異常錯誤。如果在 Bug Database (http://bugs.java.com) 中沒有找到該錯誤, 請通過 Java Bug 報告頁 (http://bugreport.java.com) 建立該 Java 編譯器 Bug。請在報告中附上您的程序和以下診斷信息。謝謝。
com.sun.tools.javac.code.Symbol$CompletionFailure: 找不到java.lang.invoke.MethodType的類文件

分析應該是反射沒有獲取到方法,而我的baselib中用到的反射不多,而且牽扯到1.8 lambda表達式的只有一行代碼

PageManager pageStateManager = PageManager.init(container, false, this::loadData);

試着將這行lambda表達式改成原始代碼,make項目可以正常編譯通過,不過具體還不太確定出現這個問題的具體原因,因爲app配置和baselib的配置一致,而app中使用lambda未出現問題,有童鞋瞭解的話,還請不吝賜教

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章