2015-07-10 8 views
5

Il problema è strano. Sto cercando di aggiungere una stringa direttamente in build.gradle perché ne ho bisogno per utilizzare la libreria di vassoi (https://github.com/grandcentrix/tray). Nel mio primo progetto è andato tutto bene. Nel secondo progetto è un po 'più complicato. Sto usando gradle:1.2.3 e durante l'esportazione di apk firmato c'è un errore MissingTranslation.Generazione apk firmato. Errore: (7) [MissingTranslation] in build/generated/res/generated/release/values ​​/ generated.xml

build.gradle

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

errore di generazione

.../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> 

Ci sono alcune domande simili, ma tutti loro sono legati alla strings.xml e è suggerito per

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

o semplicemente translatable="false"

non posso farlo perché il file è generato automaticamente. Come posso forzare gradle a ignorare l'errore? Ho provato a cambiare le impostazioni di ispezione e farne un avvertimento, ma gradle sta ignorando le mie impostazioni.

So che è un bug (https://code.google.com/p/android/issues/detail?id=152198) ma non so come risolverlo. Tutte le risposte che ho trovato non funzionano.

+0

Questo è un errore di sfilacciamento, che ti impedisce di creare l'app quando non dovrebbe, se è la tua scelta di non supportare determinate stringhe in polacco. Puoi disabilitare i singoli controlli dei lanci in Android Studio o Eclipse, imposta questo controllo su "ignora" e non si lamenterà. – Christine

+0

Ma l'ultimo gradle ignora l'impostazione :(Sto parlando di creare una versione di produzione gradlew – koras

risposta

10

Bene, ho risolto questo. Va detto che l'errore è strano. Non è mai apparso prima, solo l'ultima versione gradle ha il problema. Ho scoperto che generare un apk firmato ignora le nostre impostazioni di ispezione (Android Studio) ed è impossibile generare una versione di produzione.

Basta ignorarlo nel posto giusto! Qui: build.gradle

android { 
    // defaultConfig, buildTypes, etc. 

    lintOptions { 
     disable 'MissingTranslation' 
    } 
} 

La soluzione deve essere utilizzata con la consapevolezza che tutte le traduzioni mancanti saranno semplicemente ignorati quindi vi consiglio di commentare esso, doppio controllo ciò che manca e, infine, rimuovere il commento che quando tutto è come previsto;)

Spero che abbia aiutato qualcuno. Cosa molto fastidiosa

+0

Questo non funziona quando minifyEnabled true – VVB

+0

È strano. Uso minify in tutte le mie app e tutto è OK. Prova ad aggiornare gradle (specifica l'ultima versione nella configurazione di build, ad esempio 1.5). – koras

1

In Android Studio, vai su Impostazioni/Ispezioni/lucchetto Android, nella casella di ricerca digita "missingtranslation", quindi seleziona "info" invece di "errore" in basso a destra. Oppure deseleziona la cosa completamente.

+0

Lo so, ma gradle build (release) sembra ignorarlo e l'app non lo costruisce ancora. Proverò a disabilitarlo completamente – koras

+0

Anche disabilitare il valore è ignorato da gradle Lol ... C'è un bug da qualche parte Le versioni precedenti di gradle non hanno nemmeno bisogno di cambiare qualcosa per ignorare le stringhe da build.gradle – koras

+0

Provato ma non ha funzionato – VVB

Problemi correlati