Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error when running cordova build –release android

I'm trying to publish my Android app by following the instructions here:

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

However, when I run cordova build --release android I get the following 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) 

I can run ionic build android and deploy to an emulator without problem.

I've tried searching for lintOptions and build.gradle but I can't find them anywhere in my project...

Can anyone help? Thanks in advance

like image 738
James J Avatar asked May 20 '15 09:05

James J


People also ask

Does Cordova support Android 12?

We have integrated the Android 12 SplashScreen API including the compatibility library into the core of the Cordova-Android platform to provide support for Android API 22+. For more information, please refer to the PR and Cordova Docs.

Does Cordova need Android studio?

Cordova-Android projects can be opened in Android Studio. This can be useful if you wish to use Android Studio's built in Android debugging and profiling tools or if you are developing Android plugins. Note: When opening your project in Android Studio, it is recommended to NOT edit the code within the IDE.


2 Answers

Solved this by adding

lintOptions {     abortOnError false } 

to the android {} section in /platforms/android/build.gradle

like image 137
James J Avatar answered Oct 11 '22 11:10

James J


Add the following entry to the /platforms/android/build.gradle file in your Ionic project:

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

worked.

like image 21
Brainiac Avatar answered Oct 11 '22 10:10

Brainiac