我在Windows上使用Android studio 2.2.2克隆project,当我运行该项目时出现错误
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
如何解决此问题?
答案 0 :(得分:0)
抱歉,我没有看到问题出在BuildConfig
。虽然它的没有建议来编辑BuildConfig.java,但它的内容确实来自build.gradle
,你必须在那里转义角色
字符\
是一个特殊字符,需要进行转义。将\
的所有实例替换为\\
,如
public static final String[] TRANSLATION_ARRAY = new String[] {"G:\\Developer\\AndroidStudioProjects\\gpslogger\\gpslogger\\src\\main\\res\\values","G:\\Developer.......,....,....};