Android 错误:当不使用默认接口方法时,仅支持从牛轧糖(--min api 24)开始的默认接口方法
编译libgdx游戏时,我从android studio收到以下错误:Android 错误:当不使用默认接口方法时,仅支持从牛轧糖(--min api 24)开始的默认接口方法,android,gradle,java-8,java-7,Android,Gradle,Java 8,Java 7,编译libgdx游戏时,我从android studio收到以下错误: Error: Default interface methods are only supported starting with Android N (--min-api 24): com.hgames.core.item.Item com.hgames.core.item.misc.MiscItem.deepClone() 我不明白,因为我没有使用默认的接口方法。我的代码使用JDK1.7编译得很好。此处报告的错误与
Error: Default interface methods are only supported starting with
Android N (--min-api 24): com.hgames.core.item.Item
com.hgames.core.item.misc.MiscItem.deepClone()
我不明白,因为我没有使用默认的接口方法。我的代码使用JDK1.7编译得很好。此处报告的错误与以下代码有关:
interface Item {
Item deepClone()
}
interface MiscItem extends Item {
@Override
MiscItem deepClone()
}
其中没有默认方法。请注意,如果我删除此重写,并在调用站点向MiscItem添加强制转换,编译器将报告下一个错误(同类错误),因为我在许多地方使用此模式。我正在使用gradle,在build.gradle文件中有以下内容:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
defaultConfig {
minSdkVersion 9
targetSdkVersion 15
compileSdkVersion 15
versionCode 1
}
我不熟悉android studio,因为我通常使用Eclipse,但我切换到android studio将我的游戏移植到android。因此,也许我遗漏了一些愚蠢的东西,但我在任何地方都找不到任何帮助。正如Commonware所提到的,为了参考,请在build.gradle中的android{…}闭包中为您的应用程序模块添加以下内容以解决问题:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
...
}
您是否尝试过如本文所示使用Java8?是的,它解决了问题,但让我困惑;我需要指定一个高于实际源支持的源兼容性^^^谢谢!