如何解决 `jack.import.type.policy` 的区域设置问题?

How to resolve locale issue with `jack.import.type.policy`?

我正在构建一个 必须 使用 Java 8 个库的应用程序。为了启用源兼容性,我在应用程序的 build.gradle:

中添加了以下内容
compileSdkVersion 23
buildToolsVersion "25.0.0"
defaultConfig {
    applicationId "SOME_APP"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    // enable Jack
    jackOptions {
        enabled true
    }
}
//...
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

构建解决方案时出现以下错误:

Error:com.android.sched.util.config.PropertyIdException: Property 'jack.import.type.policy' (in -D option): The value must be {keep-fırst,faıl} (case insensitive) but is 'keep-first'
Error:com.android.sched.util.codec.ParsingException: The value must be {keep-fırst,faıl} (case insensitive) but is 'keep-first'

如您所见,此错误是由土耳其语 İ i I ı 字符引起的。其他人得到了这个错误,这是 issue ticket。此问题已标记为在未来版本中解决,但由于项目的重要性,我等不及这个未来版本了。

问题单中有建议的解决方案:

A tricky solution that i made: Created run configurations for all jack related tasks in gradle (almost 9), and update VM Options part with -Duser.language=en

我试图通过编辑 VM 选项来应用它

并将 -Duser.language=en 添加到 studio.exe.vmoptions 文件。

不幸的是,这并没有解决问题,每当我尝试构建项目时都会遇到同样的错误。

找到了可行的解决方案。此行为是由 Windows 中的 非 unicode 程序的语言 设置引起的。我有 Turkish 作为非 unicode 程序的语言。将其更改为 English 后问题已解决。

[编辑] 以下解决方案适用于 Android Studio 运行 on Windows

要更改,请导航至“控制面板”->“区域和语言”。单击管理选项卡。单击更改系统区域设置和 select 英语。如有必要,请单击应用并重新启动。

感谢@raidensan

更改计算机语言,问题解决。 (使用 Windows8)

  • 控制面板 -> 语言 -> 添加语言 -> 英文
  • 控制Panel\All控制面板Items\Language