2015-05-20 14 views
34

Sto cercando di pubblicare la mia applicazione Android seguendo le istruzioni qui:errore quando Cordova esecuzione costruire -release Android

http://ionicframework.com/docs/guide/publishing.html

Tuttavia, quando si esegue Cordova costruire Android --release ottengo il seguente error:

:lintVitalArmv7Release 
/Users/xxx/Documents/xxx/xxx/platforms/android/res/values/arrays.xml:3: Error: "country_codes" is not translated in "ar" (Arabic), "bg" (Bulgarian), "ca" (Catalan), "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "es" (Spanish), "eu" (Basque), "fi" (Finnish), "fr" (French), "he" (Hebrew), "hi" (Hindi), "hu" (Hungarian), "id" (Indonesian), "it" (Italian), "iw" (Hebrew), "ja" (Japanese), "ko" (Korean), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "ru" (Russian), "sk" (Slovak), "sl" (Slovene), "sv" (Swedish), "tr" (Turkish), "zh-rCN" (Chinese: China), "zh-rTW" (Chinese: Taiwan, Province of China) [MissingTranslation] 
    <string-array name="country_codes"> 
       ~~~~~~~~~~~~~~~~~~~~ 
/Users/xxx/Documents/xxx/xxx/platforms/android/res/values/strings.xml:3: Error: "app_name" is not translated in "ar" (Arabic), "bg" (Bulgarian), "ca" (Catalan), "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "es" (Spanish), "eu" (Basque), "fi" (Finnish), "fr" (French), "he" (Hebrew), "hi" (Hindi), "hu" (Hungarian), "id" (Indonesian), "it" (Italian), "iw" (Hebrew), "ja" (Japanese), "ko" (Korean), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "ru" (Russian), "sk" (Slovak), "sl" (Slovene), "sv" (Swedish), "tr" (Turkish), "zh-rCN" (Chinese: China), "zh-rTW" (Chinese: Taiwan, Province of China) [MissingTranslation] 
    <string name="app_name">myapp</string> 
      ~~~~~~~~~~~~~~~ 
/Users/xxx/Documents/xxx/xxx/platforms/android/res/values/strings.xml:4: Error: "launcher_name" is not translated in "ar" (Arabic), "bg" (Bulgarian), "ca" (Catalan), "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "es" (Spanish), "eu" (Basque), "fi" (Finnish), "fr" (French), "he" (Hebrew), "hi" (Hindi), "hu" (Hungarian), "id" (Indonesian), "it" (Italian), "iw" (Hebrew), "ja" (Japanese), "ko" (Korean), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "ru" (Russian), "sk" (Slovak), "sl" (Slovene), "sv" (Swedish), "tr" (Turkish), "zh-rCN" (Chinese: China), "zh-rTW" (Chinese: Taiwan, Province of China) [MissingTranslation] 
    <string name="launcher_name">@string/app_name</string> 
      ~~~~~~~~~~~~~~~~~~~~ 
/Users/xxx/Documents/xxx/xxx/platforms/android/res/values/strings.xml:5: Error: "activity_name" is not translated in "ar" (Arabic), "bg" (Bulgarian), "ca" (Catalan), "cs" (Czech), "da" (Danish), "de" (German), "el" (Greek), "es" (Spanish), "eu" (Basque), "fi" (Finnish), "fr" (French), "he" (Hebrew), "hi" (Hindi), "hu" (Hungarian), "id" (Indonesian), "it" (Italian), "iw" (Hebrew), "ja" (Japanese), "ko" (Korean), "nl" (Dutch), "pl" (Polish), "pt" (Portuguese), "ru" (Russian), "sk" (Slovak), "sl" (Slovene), "sv" (Swedish), "tr" (Turkish), "zh-rCN" (Chinese: China), "zh-rTW" (Chinese: Taiwan, Province of China) [MissingTranslation] 
    <string name="activity_name">@string/launcher_name</string> 
      ~~~~~~~~~~~~~~~~~~~~ 

    Explanation for issues of type "MissingTranslation": 
    If an application has more than one locale, then all the strings declared 
    in one language should also be translated in all other languages. 

    If the string should not be translated, you can add the attribute 
    translatable="false" on the <string> element, or you can define all your 
    non-translatable strings in a resource file called donottranslate.xml. Or, 
    you can ignore the issue with a tools:ignore="MissingTranslation" 
    attribute. 

    By default this detector allows regions of a language to just provide a 
    subset of the strings and fall back to the standard language strings. You 
    can require all regions to provide a full translation by setting the 
    environment variable ANDROID_LINT_COMPLETE_REGIONS. 

    You can tell lint (and other tools) which language is the default language 
    in your res/values/ folder by specifying tools:locale="languageCode" for 
    the root <resources> element in your resource file. (The tools prefix 
    refers to the namespace declaration http://schemas.android.com/tools.) 

/Users/xxx/Documents/xxx/xxx/platforms/android/res/values-ar/strings.xml:64: Error: "menu_settings" is translated here but not found in default locale [ExtraTranslation] 
    <string name="menu_settings">???????</string> 
    5 errors, 0 warnings 
    :lintVitalArmv7Release FAILED 

    FAILURE: Build failed with an exception. 

    * What went wrong: 
    Execution failed for task ':lintVitalArmv7Release'. 
    > Lint found fatal errors while assembling a release target. 

     To proceed, either fix the issues identified by lint, or modify your build script as follows: 
     ... 
     android { 
      lintOptions { 
       checkReleaseBuilds false 
       // Or, if you prefer, you can continue to check for errors in release builds, 
       // but continue the build even when errors are found: 
       abortOnError false 
      } 
     } 
     ... 

    * Try: 
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

    BUILD FAILED 

    Total time: 4.583 secs 

    /Users/xxx/Documents/xxx/xxx/platforms/android/cordova/node_modules/q/q.js:126 
         throw e; 
          ^
    Error code 1 for command: /Users/xxx/Documents/xxx/xxx/platforms/android/gradlew with args: cdvBuildRelease,-b,/Users/xxx/Documents/xxx/xxx/platforms/android/build.gradle,-Dorg.gradle.daemon=true 
    ERROR building one of the platforms: Error: /Users/xxx/Documents/xxx/xxx/platforms/android/cordova/build: Command failed with exit code 8 
    You may not have the required environment or OS to build this project 
    Error: /Users/xxx/Documents/xxx/xxx/platforms/android/cordova/build: Command failed with exit code 8 
     at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23) 
     at ChildProcess.emit (events.js:98:17) 
     at maybeClose (child_process.js:766:16) 
     at Process.ChildProcess._handle.onexit (child_process.js:833:5) 

Posso eseguire ionic build android e distribuirlo a un emulatore senza problemi.

Ho provato a cercare per lintOptions e build.gradle, ma non riesco a trovare da nessuna parte nel mio progetto ...

chiunque può aiutare? Grazie in anticipo

+0

Si dovrebbe trovare 'build.gradle' in'/platforms/android/'. Prova ad aggiungere l'opzione suggerita e rieseguire. – QueryLars

+0

Ho lo stesso problema qui ... Qualche idea che sta succedendo? –

+0

Se le soluzioni seguenti non funzionano, controllare http://stackoverflow.com/questions/17020298/android-sdks-build-tools-17-0-0-aapt-error-while-loading-shared-libraries-libz –

risposta

39

risolto aggiungendo

lintOptions { 
    abortOnError false 
} 

alla sezione android {} in /platforms/android/build.gradle

+0

Apprezzare signore. – cpk

+18

meglio ancora, anziché modificare 'build.grade', aggiungere un nuovo file chiamato' build-extras.gradle' e mettere quanto segue: 'Android {{ lintOptions checkReleaseBuilds falsi }} ' – DenisH

+0

Non ho parole per apprezzare il mio amico .. Grazie mille – Vinith

7

Uno può essere più specifici semplicemente aggiungendo

lintOptions { 
    disable MissingTranslation 
} 
+10

Ho trovato che dovevo aggiungere 'lintOptions { disabilitare 'MissingTranslation' disabilitare 'ExtraTranslation' }' (su linee separate ovviamente) – DenisH

+0

Questo mi sembra migliore: Lint può essere utile per altre cose. –

30

Il mio aggiornamento di build.gradle a

android { 
    lintOptions { disable 'MissingTranslation', 'ExtraTranslation' } 
} 

lavorato.

+0

Grazie amico .. questo mi fa risparmiare un sacco di tempo. –

+1

Opzione molto migliore di disabilitare completamente i controlli di errore – andreszs

+0

Grazie amico molto .. Ha funzionato !! ma spero che questo non influenzi nient'altro e una soluzione affidabile: P – idleMind

2
echo "android { lintOptions { checkReleaseBuilds false } }" >> platforms/android/build-extras.gradle 
4

Per fissato questo errore si dovrebbe aggiungere

lintOptions { 
    checkReleaseBuilds false 
    // Or, if you prefer, you can continue to check for errors in release builds, 
    // but continue the build even when errors are found: 
    abortOnError false 
} 

Nella sezione Android {} in /platforms/android/build.gradle

14

Per coloro che preferiscono tenere platforms directory fuori del VCS (Git, ecc.),
la soluzione migliore al momento è utilizzare un plug-in chiamato ignore-lint-translation.

cordova plugin add cordova-plugin-ignore-lint-translation --save 

Il risultato efficace è l'aggiunta di un file Gradle che consente di disattivare tali opzioni lint (doh!).

+0

grazie, questo è esattamente quello che ero alla ricerca di – rarspace01

+0

Cordova supporta build-extras.gradle, questo non ha bisogno di essere inserito nel proprio file, basta copiare build-extras.gradle nella directory della piattaforma. Questo è il consiglio più facilmente disponibile nella documentazione. –

Problemi correlati