2015-07-10 71 views
5

問題很奇怪。我試圖直接在build.gradle中添加一個字符串,因爲我需要它使用托盤庫(https://github.com/grandcentrix/tray)。在我的第一個項目中一切都很順利。在第二個項目中,它有點複雜。我正在使用gradle:1.2.3,而導出已簽名的apk時會出現MissingTranslation錯誤。生成已簽名的apk。錯誤:(7)build/generated/res/generated/release/values/generated.xml中的[MissingTranslation]

的build.gradle

applicationId "some.app.id" 
resValue "string", "tray__authority", "${applicationId}.tray" 

生成錯誤

.../build/generated/res/generated/release/values/generated.xml 
Error:(7) Error: "tray__authority" is not translated in "pl" (Polish) [MissingTranslation] 
<string name="tray__authority">some.app.id.tray</string> 

generated.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <!-- Automatically generated file. DO NOT MODIFY --> 

    <!-- Values from default config. --> 
    <string name="tray__authority">some.app.id.tray</string> 

</resources> 

有一些類似的問題,但所有的人都來的strings.xml和相關建議去

<resources 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation"> 

或只是translatable="false"

,因爲該文件是自動生成的,我不能做到這一點。我如何強迫gradle忽略錯誤?我試圖改變檢測設置並將其設爲警告,但是gradle忽略了我的設置。

我知道這是一個錯誤(https://code.google.com/p/android/issues/detail?id=152198),但我不知道如何解決它。我發現的所有答案都不起作用。

+0

這是一個lint錯誤,它會阻止您在不應該創建應用程序的情況下,如果您選擇不支持波蘭語中的某些字符串。您可以在Android Studio或Eclipse中禁用單獨的lint檢查,將此檢查設置爲「忽略」,並且不會發生抱怨。 – Christine

+0

但是最新的gradle忽略了這個設置:(我正在談論的是通過gradlew – koras

回答

10

嗯,我解決了這個問題。不得不說這個錯誤很奇怪。它從來沒有出現過,只有最新的gradle版本有問題。我發現生成簽名的apk會忽略我們的檢測設置(Android Studio),並且無法生成產品發佈。

只要忽略它在正確的地方!在這裏:build.gradle

android { 
    // defaultConfig, buildTypes, etc. 

    lintOptions { 
     disable 'MissingTranslation' 
    } 
} 

該解決方案應該與所有丟失的翻譯只會被忽略,所以我建議評論它的意識被使用,仔細檢查缺什麼,並最終取消它時,一切都按預期;)

我希望它能幫助別人。非常煩人的事情。

+0

當minifyEnabled true時這不起作用 – VVB

+0

這很奇怪,我在我的所有應用程序中都使用minify,並且一切正常,嘗試升級gradle(在你的build配置中指定最新版本,例如1.5)。 – koras

1

在Android Studio中,轉到設置/檢查/ Android lint,在搜索框中鍵入「missingtranslation」,然後選擇「信息」而不是右下角的「錯誤」。或者完全取消選中。

+0

構建一個生產版本,但是我認爲這個。但是gradle build(release)似乎忽略了它,應用程序仍然沒有生成。我試圖完全禁用它 – koras

+0

即使禁用該值也會被gradle忽略lol ...在某處有一個bug以前的gradle版本甚至不需要改變某些東西來忽略來自build.gradle的字符串 – koras

+0

試過但沒有工作 – VVB