如何使用`jack.import.type.policy`解决语言环境问题?

时间:2016-11-09 08:11:48

标签: java java-8 android-gradle android-studio-2.2 android-jack-and-jill

我正在构建一个必须使用Java 8库的应用程序。为了启用源兼容性,我在app的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。此问题在未来版本中已标记为已解决,但由于项目的重要性,我不能等待此版本的发布。

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

  

我做的一个棘手的解决方案:   为gradle中的所有插孔相关任务创建运行配置(差不多9个),并使用-Duser.language = en

更新VM选项部件

我尝试通过编辑VM选项

来应用此功能

enter image description here

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

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

  • 我当前的配置是对的吗?
  • 还有另一种解决方法吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

enter image description here

答案 1 :(得分:0)

谢谢@raidensan

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

  • DenetimMasası - > Dil - > Dil ekle - > ingilizce
  • 控制面板\所有控制面板项目\语言

enter image description here