2015-07-10 16 views
5

Problem jest dziwny. Próbuję dodać ciąg bezpośrednio w build.gradle, ponieważ potrzebuję go do korzystania z biblioteki Tray (https://github.com/grandcentrix/tray). W moim pierwszym projekcie wszystko poszło dobrze. W drugim projekcie jest to nieco bardziej skomplikowane. Używam gradle:1.2.3 i podczas eksportowania podpisanego pliku apk pojawia się błąd MissingTranslation.Generowanie podpisanego pliku APK. Błąd: (7) [MissingTranslation] w build/generated/res/generated/release/values ​​/ generated.xml

build.gradle

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

błąd kompilacji

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

Istnieje kilka podobnych pytań, ale wszystkie z nich są związane z strings.xml i sugeruje się

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

lub po prostu translatable="false"

nie mogę tego zrobić, ponieważ plik jest generowany automatycznie. Jak mogę zmusić gradle do zignorowania błędu? Próbowałem zmienić ustawienia inspekcji i zrobić ostrzeżenie, ale gradle ignoruje moje ustawienia.

Wiem, że to błąd (https://code.google.com/p/android/issues/detail?id=152198), ale nie wiem jak to rozwiązać. Wszystkie znalezione odpowiedzi nie działają.

+0

To błąd linta, który uniemożliwia budowanie aplikacji, gdy nie powinien, jeśli jest to twój wybór, aby nie obsługiwać niektórych napisów w języku polskim. Możesz wyłączyć pojedyncze sprawdzanie lint w Android Studio lub Eclipse, ustawić to zaznaczenie na "ignoruj" i nie będzie narzekać. – Christine

+0

Ale najnowszy gradle ignoruje ustawienie :(Mówię o budowaniu wersji produkcyjnej przez gradlew – koras

Odpowiedz

10

Cóż, rozwiązałem to. Trzeba powiedzieć, że błąd jest dziwny. Nigdy wcześniej się nie pojawił, tylko najnowsza wersja gradle ma problem. Odkryłem, że generowanie podpisanego pliku APK ignoruje nasze ustawienia inspekcji (Android Studio) i nie można wygenerować wersji produkcyjnej.

Po prostu zignoruj ​​to we właściwym miejscu! Tutaj: build.gradle

android { 
    // defaultConfig, buildTypes, etc. 

    lintOptions { 
     disable 'MissingTranslation' 
    } 
} 

Roztwór powinien być stosowany ze świadomością, że wszystkie brakujące tłumaczenia będą po prostu ignorowane, więc polecam go skomentować, sprawdź, czego brakuje i wreszcie Odkomentuj że kiedy wszystko jest zgodnie z przeznaczeniem;)

Mam nadzieję, że pomogło komuś. Bardzo denerwujące.

+0

To nie działa, gdy minifyEnabled true – VVB

+0

To dziwne, używam minify we wszystkich moich aplikacjach i wszystko jest w porządku.Spróbuj poprawić gradle (określ najnowszą wersję w twojej konfiguracji build, np. 1.5) Może to pomóc. – koras

1

W Android Studio, przejdź do Ustawienia/Inspekcje/Android lint, w polu wyszukiwania wpisz "missingtranslation", a następnie wybierz "info" zamiast "błąd" w prawym dolnym rogu. Lub całkowicie odznacz wszystko.

+0

Wiem, ale gradle build (release) wydaje się ignorować to i aplikacja nadal nie buduje. Spróbuję go całkowicie wyłączyć – koras

+0

Nawet wyłączenie wartości jest ignorowane przez gradle Lol ... Gdzieś jest błąd Poprzednie wersje gradle nawet nie musiały zmieniać czegoś, aby zignorować ciągi z build.gradle – koras

+0

Próbowałem, ale nie pracował – VVB

Powiązane problemy