【发布时间】:2018-12-18 12:17:05
【问题描述】:
编译我的 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 编译得很好。此处报告的错误涉及以下代码:
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。所以也许我错过了一些愚蠢的东西,但我在任何地方都找不到任何帮助。
【问题讨论】:
-
您是否尝试过按照question 中的说明使用 Java 8?
-
是的,它解决了问题,但让我感到困惑;我需要指定比实际源支持更高的源兼容性^^谢谢!
标签: android gradle java-8 java-7