是否可以在Android <API 24中使用默认接口实现?

a_s*_*ber 13 java android

Android Studio 2.3.3,Java 8

我为Android 4.0+创建Android应用程序

在我的app/build.gradle中:

...
minSdkVersion 15
targetSdkVersion 26
Run Code Online (Sandbox Code Playgroud)

我想使用默认接口实现(来自Java 8).所以我创建了tnext类:

public interface DefaultCallback {

    public default void onResponse(Call<T> var1, Response<T> var2) {

    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到编译错误:

默认方法要求API级别24(当前最小值为15)

所以问题是:

我可以在Android <API 24上使用deafult接口实现吗?

小智 20

根据您的minSdk版本,您可能需要将以下内容添加到应用程序或模块的build.gradle文件中:

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅https://developer.android.com/studio/write/java8-support.html#supported_features

  • 对于语言功能,minSdk不再受限制。 (2认同)