2017-03-07 69 views
11

最近我已經更新了我的Android工作室後錯誤(缺少翻譯)2.2.3 to 2.3.0項目在2.2.3但2.2.3 to 2.3.0更新項目依賴classpath中獲得了大量的翻譯缺失的錯誤從string.xml後運行良好。Android Studio中顯示來自更新

enter image description here

誰能告訴我,爲什麼它正在發生,以及如何解決這些錯誤?

回答

27

有很多方法來解決這個問題:

第一種方法:

添加到的build.gradle:

android { 
    lintOptions { 
     disable 'MissingTranslation' 
    } 
} 

方法二:

這是ignore屬性你的st中的tools命名空間環文件,內容如下:

<?xml version="1.0" encoding="utf-8"?> 
<resources 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation" > 

    <!-- your strings here; no need now for the translatable attribute --> 

</resources> 

第三種方法:

在你ADTwindow->Preferences->Android->Lint Error Checking

發現有Missing Translation,並改變其對SeverityWarning

參考鏈接:

http://www.fasteque.com/missingtranslation-issue-for-release-builds/

希望它能對你有幫助。

+0

@KapilRajput歡迎您! – vanloc

+0

在Android Studio中,你可以在'Preferences-> Editor-> Inspections'中找到它 – Lemberg

4

我正面臨完全相同的問題。根據我的觀察,這個問題是在Gradle插件2.3.0版本中引入的。如果項目中有一個模塊支持比您的應用程序或其他模塊更多的語言,就會發生這種情況。您可以開始編輯這些模塊的翻譯,但這使得它們不易維護。

如果您使用此處的任何建議或針對類似問題禁用Lint檢查,則還會忽略應用程序中實際的翻譯錯誤,其中支持的語言缺少翻譯。之後你需要非常小心地維護你的琴絃。

還有一個,也不理想,選項:將插件版本更改回最後一個沒有在您的build.gradle中顯示這些症狀。

dependencies { 
    classpath 'com.android.tools.build:gradle:2.2.3' 
} 

然而有的方式來完成這項工作,而不會丟失重要的警告/錯誤,並沒有恢復到舊版本的工具。你可以在Google's documentationthis answer中找到它。

android { 
    defaultConfig { 
     ... 
     resConfigs "en", "fr" 
    } 
} 

這消除了不需要的資源以及警告和錯誤。我已經更新了我的代碼,現在它可以正常工作。

新的Gradle插件版本引入了另一個問題:如果您得到誤報,即錯誤抱怨您標記爲不可翻譯的字符串缺少翻譯,請檢查字符串名稱是否存在於另一個模塊中。在這種情況下,重命名或提供翻譯和錯誤消失。

+0

這工作,似乎是乾淨的適當的解決方案 resConfigs「en」,「fr」' – Riz