I've updated my project to SDK version 24 and Java 8 and encountered a strange encoding issue.
By some strange reason Android treats my hardcoded UTF-8 strings as Windows-1251 and thus the text is garbled.
Like this:
This is what I changed:
compileSdkVersion 24
buildToolsVersion "24.0.2"
compileOptions {
encoding = 'utf-8'
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
And what I've tried:
If I revert back to Java 7 everything is ok.
Any ideas?
This is a bug in Jack compiler, have a look at this post.
Jack has been using the default VM encoding, which on windows is windows-1252. So, your text is encoded with UTF-8
and decoded with windows-1252
by Jack compiler, and this is why they became garbled.
Until now, Gradle Plugin
doesn't support an API to set the decode format, so we need to wait...
I had the same issue in Windows(but not Mac OSX). this line solve my problem(put it in gradle.properties
of your project):
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
note that this part change encoding:
-Dfile.encoding=UTF-8
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With