Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

911
Views
Usando JDK17 y Record en Android Studio (Java, Android)

ingrese la descripción de la imagen aquí

Parte 1 :-

Después de obtener esta versión de Android Studio, puedo usar JDK17 en mi proyecto. Todo funciona muy bien, ninguna compilación falla, ningún error de tiempo de ejecución, etc. (como el interruptor mejorado funciona bien) ... pero esta advertencia sigue apareciendo durante cada compilación. ¿Hay alguna forma de suprimir esto?

ingrese la descripción de la imagen aquí (Texto de advertencia -> "Una o más clases tienen una versión de archivo> = 56 que no es compatible oficialmente" )

Estos son los archivos 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 }

(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' }

(Intenté buscar advertencias similares pero no tuve suerte)

Parte 2 :-

Recientemente, descubrí que Android Studio ahora muestra la opción para crear un nuevo registro de Java. ingrese la descripción de la imagen aquí

Pero cuando creo uno y construyo el proyecto, aparece este error: ingrese la descripción de la imagen aquí

Entonces ... ¿hay alguna forma de agregar a la fuerza esa clase de Registro en el paquete java.lang?

(Si necesita más información/aclaración sobre esto, hágamelo saber)

Editar : soy consciente del hecho de que las versiones superiores a 11 no son oficialmente compatibles, pero ¿no hay una solución?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

La última versión de Java bytecode compatible con Android es Java 7

Android SDK admite la eliminación de azúcar para algunas de las características posteriores de Java: https://developer.android.com/studio/write/java8-support .
Estas características son "azúcar sintáctica": cuando las construcciones de código corto y liviano reemplazan las construcciones complejas para mejorar la legibilidad. Dichas características no requieren cambios significativos en la JVM y se pueden volver a compilar en versiones anteriores del código de bytes de Java.

"Desugaring" significa que el código fuente de Java 8 (o posterior) se compila en el código de bytes de Java 7 cuando es posible

La mayoría de las características de Java8+ no son compatibles

Si desea escribir código para Android de una manera moderna, debe cambiar a Kotlin

over 4 years ago · Santiago Trujillo Report

0

Para la primera parte: la advertencia significa que tiene una o más clases dentro de su proyecto que no son compatibles con las versiones de Java superiores a la 11.

Hay algunas dependencias en su proyecto que no están compiladas para JDK 17. Esto se debe a que Android actualmente no es compatible con Java 17. Esto significa que está mezclando diferentes versiones de Java Bitcode, lo que produce esta advertencia.

Números de versión de Java

Para la segunda parte: está intentando usar un registro, que actualmente no es compatible con Android.

Resumen: Configuró la versión de Java para su proyecto en Java 17, que actualmente no es compatible:

 compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 }

Lo más alto que puede alcanzar actualmente es Java 11 , lo que significa que debe cambiar las opciones de compilación a:

 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!