Android Studio 3.1.4,Java 8,Gradle 4.4。
在我的build.gradle中:
compileSdkVersion 26
minSdkVersion 18
targetSdkVersion 26
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
implementation 'com.android.support:appcompat-v7:26.1.0'
在我的POJO中
import java.time.LocalDate;
import java.util.Date;
public class Product {
private Date redeemed_date;
private LocalDate myLocalDate;
}
我必须使用minSdkVersion 18
,因为这是客户要求。
但是在构建时出现错误:
error: Field "myLocalDate" of type "java.time.LocalDate" is not supported.
答案 0 :(得分:3)
自2020年4月起使用 Android Gradle Plugin 4.0.0 ,您可以启用对使用多种Java 8语言API的支持(请参阅所有受支持的API:https://developer.android.com/studio/write/java8-support-table)
在任何版本的上启用对这些语言API的支持 Android平台,将Android插件更新为4.0.0(或更高版本), 在模块的build.gradle文件中添加以下内容:
android {
defaultConfig {
// Required when setting minSdkVersion to 20 or lower
multiDexEnabled true
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9'
}
答案 1 :(得分:2)
The JavaDocs for LocalDate
表明它是在API级别26中添加的。您的minSdkVersion
在它的下面,因此LocalDate
在您要运行的所有设备上均不受支持。
您的选择是:
将您的minSdkVersion
提高到26,或