错误:默认界面方法仅在不使用Nougat(--min-api 24)的情况下受支持

时间:2018-12-18 12:17:06

标签: 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很好地编译。此处报告的错误涉及以下代码:

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。因此,也许我缺少了一些愚蠢的东西,但是无论如何我都找不到任何帮助。

1 个答案:

答案 0 :(得分:1)

正如CommonsWare所述,作为参考,请将其添加到您的 app模块的build.gradle的Android {...}闭包内:

android {
...
  compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
...
}