我有两个我正在看的Android应用程序 - 一个我之前创建的应用程序和另一个我现在正在制作的应用程序。当我尝试编译新的时,我收到一个错误"错误:执行失败的任务':app:compileDebugJavaWithJavac'。 compileSdkVersion' android-25'需要JDK 1.8或更高版本才能编译。"我没有使用旧应用程序收到此错误。为什么不同?
新应用的gradle文件: 申请插件:' com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.jtriemstra.forceconnectfromphone"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.0.0'
}
旧应用程序的gradle文件: 申请插件:' com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.jtriemstra.timeswitch"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.apache.commons:commons-lang3:3.4'
compile 'commons-codec:commons-codec:1.10'
compile 'com.android.support:appcompat-v7:25.0.0'
compile files('libs/nmdp_speech_kit.jar')
}
在这两种情况下,如果我转到文件>项目结构,我看到它指向相同的JDK 1.7路径。
我能看到的最大区别是新应用程序正在使用更新版本的Gradle和Gradle包装器...我为了解决另一个问题而改变了(参见Why "This app has been built with an incorrect configuration" error occured in some phones?)但我会有期望编译失败在javac级别更多,而不是构建管理器级别。
答案 0 :(得分:0)
看起来原因实际上是gradle包装器。如果我采用不同的方法来解决我的初始问题,并将我的更改回滚到包装器以使用v2.8,则项目将进行编译。