0

我在 Windows 上使用 Android Studio 2.2.2 克隆一个项目,当我运行该项目时出现错误

BuildConfing.java 文件中的非法转义字符

最初的开发可能是在 linux ubutu 上使用 IntelliJ IDEA。我确实清理了项目并重建了它,没有任何变化。

错误在以下行

public static final String[] TRANSLATION_ARRAY = new String[]  {"G:\Developer\AndroidStudioProjects\gpslogger\gpslogger\src\main\res\values","G:\Developer.......,....,....};

BuildConfig.java 是自动生成的文件,不应编辑。

为什么会这样?BuildConfig.java 是如何生成的?

更新

@Vijai,非常感谢。问题出在 build.gradle 文件上。以下任务返回一个带有非法转义字符的字符串。

task buildTranslationArray << {
def foundLocales = new StringBuilder()
foundLocales.append("new String[]{")

fileTree("src/main/res").visit { FileVisitDetails details ->
    if(details.file.path.endsWith("strings.xml")){
        def languageCode = details.file.parent.tokenize('/').last().replaceAll('values-','').replaceAll('-r','-')
        languageCode = (languageCode == "values") ? "en" : languageCode;
        foundLocales.append("\"").append(languageCode).append("\"").append(",")
    }
}
foundLocales.append("}")
//Don't forget to remove the trailing comma
def foundLocalesString = foundLocales.toString().replaceAll(',}','}')
android.defaultConfig.buildConfigField "String[]", "TRANSLATION_ARRAY", foundLocalesString
}
preBuild.dependsOn buildTranslationArray

我该如何解决这个问题?

4

1 回答 1

0

更新

抱歉,我没有读到问题出在BuildConfig. 虽然确实不建议编辑 BuildConfig.java,但它的内容确实来自某个地方build.gradle,你必须在那里转义字符


字符\是特殊字符,需要转义。\\\like替换所有实例

public static final String[] TRANSLATION_ARRAY = new String[]  {"G:\\Developer\\AndroidStudioProjects\\gpslogger\\gpslogger\\src\\main\\res\\values","G:\\Developer.......,....,....};
于 2016-11-13T04:38:46.150 回答