Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
Cómo utilizar la API de flujo de Java 8 en Android 6.0

Simplemente configure un proyecto usando Android Studio 2.2.3 con Java 1.8 y Android 7 (nivel de API 24) tratando de probar la "nueva" característica Stream de Java 8.

Aquí mi archivo gradle:

 apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.radinator.myproject" minSdkVersion 24 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.2.0' testCompile 'junit:junit:4.12' }

Aquí el código:

 import java.util.stream.*; public class MainActivity extens Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mainactivity); } void foo(){ List<String> myList = Arrays.asList("one", "two", "three", "four", "five", "six"); myList.stream() .filter(s -> s.length() > 0) .collect(Collectors.toList()) } }

Android Studio subraya la línea myList.stream()... diciéndome " Usage of API documented as @since 1.8+ " Gradle está compilando todo, pero ¿por qué recibo este mensaje? Pensé que esta función se introdujo con Java 8 y está disponible en Android API Nivel 24 y superior.

¿Cómo puedo solucionar este lío?

Gracias por adelantado

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Actualización 2017-04-04

Jack está en desuso , Google lo está reemplazando con algo llamado desugar . Ahora está disponible con Android Studio 2.4 preview 4 y versiones posteriores.

La disponibilidad de la función de lenguaje/biblioteca de Java 8 aún depende del nivel de API del dispositivo y de la versión de Android Studio, así que asegúrese de verificar dos veces lo que puede y no puede usar .

Para usarlo, simplemente configure los niveles de idioma de origen y de destino en Java 8.

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

Tenga en cuenta que si ya está usando retrolambda o jack, deberá deshabilitarlos para poder usar desugar. Encontrarás más información sobre cómo usarlo aquí .

Todavía no lo he probado porque prefiero IntelliJ IDEA y la investigación rápida sobre cómo usarlo con IDEA no fue fructífera. Actualizaré esta respuesta nuevamente una vez que descubra cómo usarla en IDEA.

respuesta antigua

Algunas características del lenguaje Java 8 están disponibles cuando se usa el compilador Jack.

para habilitar a Jack, edite su build.gradle así

 android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }

Más información se puede encontrar aquí

Sin embargo, me gustaría agregar que hasta ahora he tenido una experiencia bastante mala con Jack, especialmente durante la depuración. Recomendaría usar streamsupport y retrolambda en su lugar por ahora hasta que la hermana de jack, Jill , sea liberada .

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda