android - studio - java lambda
Android muestra texto en una codificación incorrecta después de la actualización a Java 8 (2)
Este es un error en el compilador de Jack, eche un vistazo a esta publicación .
Jack ha estado usando la codificación VM predeterminada, que en Windows es Windows-1252. Por lo tanto, su texto está codificado con UTF-8
y decodificado con windows-1252
por el compilador de Jack, y esta es la razón por la que se convirtieron en ilegibles.
Hasta ahora, Gradle Plugin
no admite una API para configurar el formato de decodificación, por lo que debemos esperar ...
Actualicé mi proyecto a SDK versión 24 y Java 8 y encontré un extraño problema de codificación.
Por algún extraño motivo, Android trata mis cadenas codificadas UTF-8 como Windows-1251 y, por lo tanto, el texto está distorsionado.
Me gusta esto:
Esto es lo que cambié:
compileSdkVersion 24
buildToolsVersion "24.0.2"
compileOptions {
encoding = ''utf-8''
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Y lo que he intentado:
- cambio de codificación en la configuración de Android Studio
- añadido compileOptions.encoding = ''windows-1251'' y compileOptions.encoding = ''utf-8''
- variable de sistema añadida JAVA_TOOL_OPTIONS: -Dfile.encoding = UTF8
Si vuelvo a Java 7 todo está bien.
¿Algunas ideas?
Tuve el mismo problema en Windows (pero no en Mac OSX). esta línea resuelve mi problema (póngalo en gradle.properties
de su proyecto):
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
tenga en cuenta que esta parte cambia la codificación:
-Dfile.encoding=UTF-8