我已经将我的项目更新为SDK 24和Java 8,并遇到了一个奇怪的编码问题。
由于一些奇怪的原因,Android将我的硬编码UTF-8字符串视为Windows1251,因此文本被混淆了。
如下所示:

这就是我改变的地方:
compileSdkVersion 24
buildToolsVersion "24.0.2"
compileOptions {
encoding = 'utf-8'
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}我试过的是:
如果我回到Java 7,一切都会好起来的。
有什么想法吗?
发布于 2016-09-20 14:26:24
这是Jack编译器中的一个bug,请看一下这个帖子。
Jack一直在使用默认的VM编码,windows上使用的是windows-1252。所以,您的文本是用UTF-8编码的,由Jack编译器用windows-1252解码的,这就是为什么它们会被混淆的原因。
直到现在,Gradle Plugin还不支持API来设置解码格式,所以我们需要等待.
发布于 2016-09-21 14:07:11
我在Windows中也有同样的问题(但Mac没有)。这一行解决了我的问题(将其放在项目的gradle.properties中):
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8请注意,此部分更改编码:
-Dfile.encoding=UTF-8https://stackoverflow.com/questions/39514276
复制相似问题