Suj*_*mar 9 java android android-studio java-record java-17
获得此版本的 Android Studio 后,我可以在我的项目中使用JDK17 。一切都工作得很好,没有构建失败,没有运行时错误等(就像增强型开关工作正常)......但是这个警告在每次构建期间不断出现。有什么办法可以抑制这种情况吗?
(警告文本 -> “一个或多个类的文件版本 >= 56,不受官方支持”)
这些是 build.gradle 文件:
(1):-
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.0-rc01'
classpath 'com.google.android.gms:strict-version-matcher-plugin:1.2.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)
(2):-
apply plugin: 'com.android.application'
apply plugin: 'com.google.android.gms.strict-version-matcher-plugin'
android {
compileSdkVersion 32
buildToolsVersion '32.0.0'
defaultConfig {
applicationId "com.Sujal_Industries.SelfEmot"
minSdkVersion 21
targetSdkVersion 32
versionCode 11
versionName "1.3.1"
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'androidx.recyclerview:recyclerview:1.3.0-alpha01'
implementation 'androidx.core:core-splashscreen:1.0.0-beta01'
implementation 'com.google.mlkit:image-labeling:17.0.6'
implementation 'com.google.android.material:material:1.6.0-alpha01'
implementation 'com.github.bumptech.glide:glide:4.12.0'
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
implementation 'io.reactivex.rxjava3:rxjava:3.1.3'
}
Run Code Online (Sandbox Code Playgroud)
(我尝试搜索类似的警告但没有运气)
最近,我发现 Android Studio 现在显示了创建新 Java Record的选项。
那么..有什么方法可以强制在java.lang包中添加Record类吗?
(如果需要更多信息/澄清,请告诉我)
编辑:我知道 11 以上的版本不受官方支持,但是没有解决方法吗?
Seb*_*ger 11
对于第一部分: 警告意味着您的项目中有一个或多个类不支持高于 11 的 Java 版本。
您的项目中有一些依赖项未针对 JDK 17 进行编译。这是因为 Android 目前不支持 Java 17。这意味着您正在混合不同版本的 Java Bitcode,从而产生此警告。
对于第二部分: 您正在尝试使用 Android 目前不支持的记录。
摘要: 您已将项目的 Java 版本设置为 Java 17,目前不支持该版本:
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
Run Code Online (Sandbox Code Playgroud)
目前您可以使用的最高版本是Java 11 ,这意味着您必须将compileOptions 更改为:
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
Run Code Online (Sandbox Code Playgroud)
从 Android 14 SDK 开始,我可以证明以下所有 Java 17 语言功能都可以在正在运行的应用程序中完美运行,非常好!代码自动完成和检查也适合我。
他们在这里写道:
Android 14 包含进一步与 OpenJDK 17 LTS 版本保持一致的功能和改进,包括库更新以及对应用和平台开发人员的 Java 17 语言支持。
我只收到一条构建警告,指出我的 Android Gradle 插件 (8.0.2) 尚未“使用compileSdk = 34 进行测试”。如果您要使用较新的 Android Gradle 插件将 Android Studio 更新到 Beta 或 Canary 通道,我确信警告将会消失。我使用的是当前的官方版本:
要开始使用 Java 17 语言功能,请设置 Android 14 SDK:
在应用程序的 build.gradle 中(使用 Groovy):
android {
compileSdk 34
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6075 次 |
最近记录: |