-2

我克隆使用project的Android 2.2.2工作室在Windows上,當我運行的項目有一個錯誤在BuildConfing.java文件非法轉義字符,Android的工作室

非法轉義字符

最初的開發可能會在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?

UPDATE

@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

更新

對不起,我沒看過,這個問題是BuildConfig。雖然這是事實,其不勸編輯BuildConfig.java,其內容也從build.gradle來的地方,你必須轉義字符有


的字符內\是一個特殊字符,需要轉義。通過\\

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

是的,我知道更換的\所有情況下,我不得不更換的「\」所有實例「\\」。但問題是BuildConfig.java文件是自動生成**,我們應該**不編輯**文件,並且不能編輯它。 – Silhan52

+0

雖然這是真的,你**不應該編輯** BuildConfig.java,'TRANSLATION_ARRAY'來自build.gradle某處。所以這將是你必須逃離角色的位置。更新了答案 – Vijai